A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乐宝myhoney 中级黑马   /  2014-2-5 21:17  /  1211 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师的基础视频里,讲到冒泡排序时,说到的那个用两个存储在栈中的变量来替换堆中数组的置换,以提高效率,有谁知道这个程序的具体实现,求代码!多谢各位了!

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1 淡定

查看全部评分

3 个回复

倒序浏览
应该是用^异或运算吧,冒泡排序本身就不是一个高效率的排序方法,想高效学学其他的排序方法
回复 使用道具 举报
//写一个函数对数组进行排序,运用冒泡排序法
        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);
                                }
                        }
                }
        }
这个就是冒泡排序的源代码,希望对你能有所帮助
回复 使用道具 举报
  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. }
复制代码

这希尔排序,毕老师说这种速度很快,没有必要掌握,了解就行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马