黑马程序员技术交流社区

标题: 冒泡排序高效率问题 [打印本页]

作者: 乐宝myhoney    时间: 2014-2-5 21:17
标题: 冒泡排序高效率问题
在毕老师的基础视频里,讲到冒泡排序时,说到的那个用两个存储在栈中的变量来替换堆中数组的置换,以提高效率,有谁知道这个程序的具体实现,求代码!多谢各位了!
作者: 徐芾清    时间: 2014-2-19 20:39
应该是用^异或运算吧,冒泡排序本身就不是一个高效率的排序方法,想高效学学其他的排序方法
作者: 追逐    时间: 2014-3-14 15:31
//写一个函数对数组进行排序,运用冒泡排序法
        public static void bubbleSort(int[] arr) {
                for(int i = 0; i <arr.length; i++) {
                        for(int j = 0; j < arr.length - i - 1; j++){//-i是让每次比较的元素减少,-1是为了避免数组下标越界
                                if(arr[j] > arr[j + 1]) {
                                        arraySort_1(arr, j);
                                }
                        }
                }
        }
这个就是冒泡排序的源代码,希望对你能有所帮助
作者: 谜燕    时间: 2014-3-14 15:39
  1. public class 希尔排序 {
  2.    
  3.     public static void main(String[] args) {
  4.         int[] a={49,38,65,97,76,13,27,49,78,34,12,64,1};
  5.         System.out.println("排序之前:");
  6.         for (int i = 0; i < a.length; i++) {
  7.             System.out.print(a[i]+" ");
  8.         }
  9.         //希尔排序
  10.         int d = a.length;
  11.         while(true){
  12.             d = d / 2;
  13.             for(int x=0;x<d;x++){
  14.                 for(int i=x+d;i<a.length;i=i+d){
  15.                     int temp = a[i];
  16.                     int j;
  17.                     for(j=i-d;j>=0&&a[j]>temp;j=j-d){
  18.                         a[j+d] = a[j];
  19.                     }
  20.                     a[j+d] = temp;
  21.                 }
  22.             }
  23.             if(d == 1){
  24.                 break;
  25.             }
  26.         }
  27.         System.out.println();
  28.         System.out.println("排序之后:");
  29.         for (int i = 0; i < a.length; i++) {
  30.             System.out.print(a[i]+" ");
  31.         }
  32.     }
  33. }
复制代码

这希尔排序,毕老师说这种速度很快,没有必要掌握,了解就行。




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