/** 需求:
- 实现两个数组组合并排序。
- 例如:arr1 = {1,10,7,5,100,78}
- arr2 = {99,54,2,46,28}
- 将两个数组合并成一个数组,并且排序后输出
- 思路:
- 1 定义两个数组,并赋值
- 2 定义第三个数组,其长度等于前两个数组长度的和
- 3 将数组1数值赋值给数组3,从0-arr1.length
- 4 将数组2数值赋值给数组3,从arr1.length-arr3.length
- 5 遍历数组3,将其输出
- 6 排序
- 定义中间变量temp
- for外循环,遍历数组3,从0开始
- for内循环,遍历数组3,从1开始
- 判断,if,如果0<1,则将0给temp;1给0;temp给0;
- 这一步其实就是如果后一个数比前一个数大,则两个数换位,否则不换
- 7 循环结束,遍历数组3,将其输出
*/
...
public class Test7_3 {
public static void sort(int[] a){
int temp;//定义中间变量
for (int i = 0; i < a.length; i++) {
for (int j = i+1; j < a.length; j++) {
if (a[i]<a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
public static void main(String[] args) {
int []arr1 = {1,10,7,5,100,78};
int []arr2 = {99,54,2,46,28};
int []arr3 = new int[arr1.length + arr2.length];//定义数组,长度是arr1和 arr2两个数组长度之和。
for(int i = 0;i < arr1.length ; i++){
arr3[i] = arr1[i];//将arr1中的所有数据保存到arr3相应的位置
}
// for(int i = arr1.length; i < arr1.length+arr2.length;i++){
// arr3[arr1.length + i] = arr2[i];//将arr2中的数据保存到arr3数组中,注意保存的位置。
// }
for (int i = 0; i < arr2.length; i++) {
arr3[arr1.length + i] = arr2[i];
}
for(int i = 0; i < arr3.length; i++){ //遍历整个数组
System.out.print(arr3[i]+"\t");//打印数组中的每一个数据
}
System.out.println();
//排序,降序排列
sort(arr3);
/*int temp;//定义中间变量
for (int i = 0; i < arr3.length; i++) {
for (int j = i+1; j < arr3.length; j++) {
if (arr3[i]<arr3[j]) {
temp = arr3[i];
arr3[i] = arr3[j];
arr3[j] = temp;
}
}
}
*/
for(int i = 0; i < arr3.length; i++){ //遍历整个数组
System.out.print(arr3[i]+"\t");//打印数组中的每一个数据
}
}
}