Java数组排序
开发工具与关键技术:myEclipse javaEE
作者:林国佳
撰写时间:20180515
选择排序:
就是第1与第2比,如果第1比第2大,位置互换,
互换后的第1与第3比,如果第1比第3大,位置互换,
一直到最后,最小值在第1位。第二次循环时第一位不参与
也就是内循环结束一次,最小值出现头角标位置上。
代码;
1. import java.util.*;
2. class ArrayTest2 {
3. public static void selectSort(int[] arr{
4. for (int x=0; x<arr.length-1 ; x++){
5. for(int y=x+1; y<arr.length; y++){
6. if(arr[x]>arr[y]){// arr[x]<arr[y]从大到小
7. int temp = arr[x];
8. arr[x] = arr[y];
9. arr[y]= temp;
10. }
11. }
12. }
13. }
14. public static void main(String[] args){
15. int[] arr = {5,1,6,4,2,8,9};
16. printArray(arr); //排序前;
17. selectSort(arr); //排序
18. System.out.print("[");
19. for(int x=0; x<arr.length; x++) {
20. if(x!=arr.length-1)
21. System.out.print(arr[x]+", ");
22. else
23. System.out.println(arr[x]+"]");
24. }
25. }
26. }
结果:
冒泡排序:
第1和第2比,如果第1比第2大,位置互换,
之后第2和第3比,如果2比3大,位置互换, 一直到最后,
最大值在最后一位。第二次循环时最后一位不参与循环
也就是内循环结束一次,最大值出现最后一位
1. import java.util.*;
2. class ArrayTest2 {
3. public static void bubbleSort(int[] arr) {
4. for(int x=0; x<arr.length-1; x++) {
5. //-x:让每一次比较的元素减少,-1:避免角标越界。
6. for(int y=0; y<arr.length-x-1; y++) {
7. if(arr[y]<arr[y+1]) {
8. int temp = arr[y];
9. arr[y] = arr[y+1];
10. arr[y+1] = temp;
11. }
12. }
13. }
14. }
15. public static void main(String[] args)
16. {
17. int[] arr = {5,1,6,4,2,8,9};
18. printArray(arr); //排序前
19. bubbleSort(arr); //排序
20.
21. System.out.print("[");//排序后:
22. for(int x=0; x<arr.length; x++)
23. {
24. if(x!=arr.length-1)
25. System.out.print(arr[x]+", ");
26. else
27. System.out.println(arr[x]+"]");
28. }
29. }
30. }
结果: