黑马程序员技术交流社区

标题: 数组的选择排序和冒泡排序 [打印本页]

作者: 陈泰延    时间: 2013-1-3 19:31
标题: 数组的选择排序和冒泡排序
本帖最后由 陈泰延 于 2013-1-3 19:40 编辑
  1. // 还有其它的方法? 请高手们指教!
  2. // 插入排序    public static void chaRu(int[] x)
  3. {     for (int i = 1; i < x.length; i++)
  4. {
  5. // i从一开始,因为第一个数已经是排好序的啦     
  6. for (int j = i; j > 0; j--)
  7. {   
  8.     if (x[j] < x[j - 1])
  9. {     
  10.    int temp = x[j];
  11.        x[j] = x[j - 1];
  12.        x[j - 1] = temp;  
  13.      }  
  14.     }  
  15.    }   
  16.   for (int i : x)
  17. {   
  18.   System.out.print(i + " ");     
  19. }   
  20. }      
  21. // 希尔排序   
  22. public static void shell(int[] x)
  23. {   
  24. // 分组   
  25. for (int increment = x.length / 2; increment > 0; increment /= 2)
  26. {     
  27. // 每个组内排序  
  28.     for (int i = increment; i < x.length; i++)
  29. {       int temp = x[i];       int j = 0;     
  30.   for (j = i; j >= increment; j -= increment)
  31. {        if (temp < x[j - increment])
  32. {      
  33.   x[j] = x[j - increment];   
  34.     }
  35. else {      
  36.    break;      
  37.   }   
  38.    }      
  39. x[j] = temp;   
  40.   }   
  41. }     
  42.   for (int i : x) {
  43.       System.out.print(i + " ");
  44.     }  
  45.   }
  46.   }
复制代码

作者: 李奇    时间: 2013-1-3 20:01
我来个 冒泡排序 吧
public class Test {
        public static void main(String args[]) {
                int temp=0;
   int[] nums={1,3,2,4,6,5};
      for (int i = 0; i < nums.length-1; i++) {
                for (int j = 0; j < nums.length-i-1; j++) {
                        if (nums[j]>nums[j+1]) {
                                temp=nums[j];
                                nums[j]=nums[j+1];
                                nums[j+1]=temp;
                        }
                }
        }
      for (int i = 0; i < nums.length; i++) {
                System.out.print(nums[i]);
        }
        }
}
这个是升序排列,要是降序只要改变下if里的条件就可以。你就记住,n个数排序,外层循环n-1,内层循环n-i-1。
作者: 肖志锋    时间: 2013-1-3 21:09
。。常说的也就是冒泡和选择,而且只要会就行了,因为你根本不会用,java自带有排序的,好像一共有7还是8种排序方式,不过没必要去纠结了,熟练冒泡跟选择就好了。
作者: 黄锦成    时间: 2013-1-6 15:20
平时了解的就冒泡和选择排序了。主要是了解它的思路就行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2