4.15 递归练习
4.31(选择排序)选择排序查找数组中的最小元素。然后将最小元素与数组中第一个元素交换。从第二个数组元素开始的子数组重复这个过程。每一次都把一个元素放到正确的位置。这种排序与冒泡排序相似,对于n个元素的数组,要 n-l 遍,对每个子数组,要用n-1次比较以求得最小值。处理包含一个元素的子数组时,数组已经排序完毕。编写递归函数 selectionSort,完成这个算法。
4.32(回文)回文就是正读反读都一样的字符串,例如 radar,able was i ere i saw elba 和a man a plan a canal panama(如果忽略空格)。编写递归函数 testPalindrome,在数组中的字符串为回文时返回 true,否则返回false。函数忽略字符串中的空格和标点符号。
4.33(线性查找)修改图4.19.用递归函数 linearsearch 对数组进行线性查找,函数应收到整型数组和数组长度参数。如果找到查找健,则返回数组下标,否则返回-1。
4.34(折半查找)修改图4.20,用递归函数 binarySearch 对数组进行折半查找。函数应收到整型数组和开始下标与结束下标参数。如果找到查找键,则返回数组下标,否则返回-1。
4.35(八皇后)修改练习4.26的八皇后程序,用递归方法解决问题。
4.36 (打印数组)编写递归函数 pritArray,取数组和长度参数,不返回任何内容。函数在收到长度为0的数组时停止处理并返回。
4.37(逆向打印字符串)编写函数 stringReverse,取包含字符串的字符数组参数,逆向打印字符串且不返回任何内容。函数在收到 null 终止符时停止处理并返回。
4.38(寻找数组中的最小值)编写递归程序 recursiveMinimum,取数组和长度参数并返回数组中的最小元素,当函数在收到长度为1的数组时停止处理并返回。