第五章部分习题答案
***5.5***编写程序,定义一个有8个元素的整形数组,然后使用选择排序法对该数组按升序排序。选择排序法先找到数列中最小的数,然后将它和第一个元素交换。 在剩下的数中找到最小数,将它和第二个元素交换,依次类推,直到数列中仅剩一个数为止。
public class ZXY3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] numbers ={
7,5,0,4,87,2,99,-3};
System.out.println("排序之前:");
for(int num:numbers){
System.out.print(num+" ");
}
//选择排序
for(int i = 0; i < numbers.length - 1; i++) {
// 做第i趟排序
int k = i;
for(int j = k + 1; j < numbers.length; j++){
// 选最小的记录
if(numbers[j] <numbers[k]){
k = j; //记下目前找到的最小值所在的位置
}
}
//在内层循环结束,也就是找到本轮循环的最小的数以后,再进行交换
if(i != k){
//交换a[i]和a[k]
int temp = numbers[i];
numbers[i] = numbers[k];
numbers[k] = temp;
}
}
System.out.println();
System.out.println("排序后:");
for(int num:numbers){
System.out.print(num+" ");
}
}
}
运行结果如下图:
***5.7***编写一个方法,计算给定的两个数组之和,格式如下:
public static int[ ] sumArray (int[ ] a, int [ ] b)
要求返回的数组元素是两个参数数组对应元素之和,不对应的元素直接赋给相应的位置,如{1,2,4} + {2,4,6,8}={3,6,10,8}。
import java.util.Arrays;
public class ZXY2 {
public static void main(String[] args) {
//5.7编写一个方法,计算给定的两个数组之和,格式如下:public static int[ ] sumArray (int[ ] a, int [ ] b)
int[] a = {
1,2,4};
int[] b = {
2,4,6,8};
int[] sumArray = sumArray(a, b);
System.out.println(Arrays.toString(