数组的逆序和冒泡排序方法
数组的逆序
数组元素逆序 (就是把元素对调)
分析: A:定义一个数组,并进行静态初始化。 B:思路 把0索引和arr.length-1的数据交换 把1索引和arr.length-2的数据交换 ... 只要做到arr.length/2的时候即可。 |
代码实战:
publicstaticvoid main(String[] args) { int[]arr ={1,2,3,4,5}; // 5 4 3 2 1
reverse(arr);
for(inti=0;i<arr.length;i++) { System.out.print(arr[i]+","); }
}
staticvoid reverse(int [] arr) { /* // 第一次 int tem = arr[0]; arr[0] = arr[arr.length-1-0];
arr[arr.length-1-0] = tem;
// 第二次 int tem = arr[1]; arr[1] = arr[arr.length-1-1]; arr[arr.length-1-1] = tem;
*/
for(inti=0;i<arr.length/2;i++) { inttem = arr[i]; arr[i] = arr[arr.length-1-i]; arr[arr.length-1-i] = tem; }
} |
选择排序
给定一个数组:
int [] arr = {80,10,8,200,3,210}
请按照从小到大顺序进行排序
代码实战:
publicstaticvoid main(String[] args) { int [] arr = {80,10,8,200,3,210}; sort(arr); for(inti=0;i<arr.length;i++) { System.out.print(arr[i]+","); } }
staticvoid sort(int [] arr) { for(intx=0;x<arr.length;x++) { for(inty=x+1;y<arr.length;y++) { if(arr[x]>arr[y]) { inttemp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } } |
冒泡排序
int[] arr={24,69,80,57,13}
冒泡排序的概念
冒泡排序: 将一个数组中的元素,两两进行比较,大的往后面放,第一轮比较完成后,数组中最大值得元素会放在数组最大索引的位置, 同理,以此类推,最终会得出一个排序好的数组 |
冒泡排序的规律:
规律:1)两两比较,数组的最大值在最后面 2)第一次比较完成后,下一次再比较的时候,就少了一个元素进行比较了 第一次比较,有0个元素不比较 第二次比较,有1个元素不比较 第三次比较,有2个元素不比较 .................. 3)总共需要比较的长度是 数组length-1 |
部分代码:
publicclass Demo1 { publicstaticvoid main(String[] args) { int[] arr={24,69,80,57,13}; printArr(arr);
//第一次比较 for(intx=0;x<arr.length-1;x++) { if(arr[x]>arr[x+1]) { inttem = arr[x]; arr[x] = arr[x+1]; arr[x+1]=tem;
} } System.out.println("=========第一次比较后:=====");
printArr(arr);
//第二次比较 for(intx=0;x<arr.length-1-1;x++) { if(arr[x]>arr[x+1]) { inttem = arr[x]; arr[x] = arr[x+1]; arr[x+1]=tem;
} } System.out.println("=========第二次比较后:=====");
printArr(arr); }
publicstaticvoid printArr(int[]arr) { for(inti=0;i<arr.length;i++) { System.out.print(+arr[i]+","); } } } |
【冒泡排序的练习题】:
将 上课讲解的冒泡排序散代码封装成方法