| 
 
| 
| 
| | « | October 2025 | » |  | 日 | 一 | 二 | 三 | 四 | 五 | 六 |  |  |  |  | 1 | 2 | 3 | 4 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |  | |  | 
 |  公告
 |  
| 快升级了.... |  
 
 
 
 
 
 
| Blog信息 |  
| blog名称:程序员之路日志总数:61
 评论数量:215
 留言数量:4
 访问次数:465491
 建立时间:2006年5月8日
 |   
 
 |  | 
 
|  [源码分享]Java排序算法 文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯
 noahj 发表于 2006/5/23 19:38:22  |  
| 
| public class Sort {   public void swap(int a[], int i, int j) {     int tmp = a[i];     a[i] = a[j];     a[j] = tmp;   }   public int partition(int a[], int low, int high) {     int pivot, p_pos, i;     p_pos = low;     pivot = a[p_pos];     for (i = low + 1; i <= high; i++) {       if (a[i] > pivot) {         p_pos++;         swap(a, p_pos, i);       }     }     swap(a, low, p_pos);     return p_pos;   }   public void quicksort(int a[], int low, int high) {     int pivot;     if (low < high) {       pivot = partition(a, low, high);       quicksort(a, low, pivot - 1);       quicksort(a, pivot + 1, high);     }   }   public static void main(String args[]) {     int vec[] = new int[] { 37, 47, 23, -5, 19, 56 };     int temp;     //选择排序法(Selection Sort)     long begin = System.currentTimeMillis();     for (int k = 0; k < 1000000; k++) {       for (int i = 0; i < vec.length; i++) {         for (int j = i; j < vec.length; j++) {           if (vec[j] > vec[i]) {             temp = vec[i];             vec[i] = vec[j];             vec[j] = temp;           }         }       }     }     long end = System.currentTimeMillis();     System.out.println("选择法用时为:" + (end - begin));     //打印排序好的结果     for (int i = 0; i < vec.length; i++) {       System.out.println(vec[i]);     }     //  冒泡排序法(Bubble Sort)     begin = System.currentTimeMillis();     for (int k = 0; k < 1000000; k++) {       for (int i = 0; i < vec.length; i++) {         for (int j = i; j < vec.length - 1; j++) {           if (vec[j + 1] > vec[j]) {             temp = vec[j + 1];             vec[j + 1] = vec[j];             vec[j] = temp;           }         }       }     }     end = System.currentTimeMillis();     System.out.println("冒泡法用时为:" + (end - begin));     //打印排序好的结果     for (int i = 0; i < vec.length; i++) {       System.out.println(vec[i]);     }     //插入排序法(Insertion Sort)     begin = System.currentTimeMillis();     for (int k = 0; k < 1000000; k++) {       for (int i = 1; i < vec.length; i++) {         int j = i;         while (vec[j - 1] < vec[i]) {           vec[j] = vec[j - 1];           j--;           if (j <= 0) {             break;           }         }         vec[j] = vec[i];       }     }     end = System.currentTimeMillis();     System.out.println("插入法用时为:" + (end - begin));     //打印排序好的结果     for (int i = 0; i < vec.length; i++) {       System.out.println(vec[i]);     }     //快速排序法(Quick Sort)     Sort s = new Sort();     begin = System.currentTimeMillis();     for (int k = 0; k < 1000000; k++) {       s.quicksort(vec, 0, 5);     }     end = System.currentTimeMillis();     System.out.println("快速法用时为:" + (end - begin));     //打印排序好的结果     for (int i = 0; i < vec.length; i++) {       System.out.println(vec[i]);     }   } } 以下是运行结果: 选择法用时为:234 56 47 37 23 19 -5 冒泡法用时为:172 56 47 37 23 19 -5 插入法用时为:78 56 47 37 23 19 -5 快速法用时为:297 56 47 37 23 19 -5 |  
 |  
 
 
 
 
| 回复:Java排序算法文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯
 路人(游客)发表评论于2007/7/3 16:06:35  |  
| 
| 冒泡排序有问题,我来改正哈,参考下:
for(int i=0;i<vec.length;i++){      for(int j=vec.length-1;j>i;j--){       if(vec[j]>vec[j-1]){        temp=vec[j-1];        vec[j-1]=vec[j];        vec[j]=temp;       }      }     }     System.out.println("冒泡排序运行如下:");     for(int i=0;i<vec.length;i++){      System.out.println(vec[i]);     } |  
 |  
 
 
 
 
 
 
| 回复:Java排序算法文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯
 linpyi(游客)发表评论于2008/9/25 9:28:46  |  
| 
| for (int k = 0; k < 1000000; k++) {        for (int i = 0; i < vec.length; i++) {          for (int j = i+1; j < vec.length; j++) {            if (vec[j] > vec[i]) {              temp = vec[i];              vec[i] = vec[j];              vec[j] = temp;            }          } 
       }      } 
选择排序 |  
 |  
 
  »  1 » 
 
 |