测试是一门武功,流程是套路、工具是武器,有简单的花拳秀腿,也有深奥的少林武功!

java排序的几种方法

上一篇 / 下一篇  2011-03-20 21:11:28 / 个人分类:JAVA程序

冒泡:
Java代码  
  1. public class BubbleSort {   
  2.     public static void bubbleSort(int[] array) {   
  3.         int length = array.length - 1;   
  4.         for (int out = length; out > 0; out--) {   
  5.             for (int in = 0; in < out; in++) {   
  6.                 if (array[in] > array[in + 1]) {   
  7.                     int s = array[in];   
  8.                     array[in] = array[in + 1];   
  9.                     array[in + 1] = s;   
  10.                 }   
  11.             }   
  12.         }   
  13.     }   
  14.   
  15. }  


插入:

Java代码  
  1. public class InsertSort {   
  2.     public static void sort(int[]array){   
  3.         int length=array.length;   
  4.         for(int out=1;out<length;out++){   
  5.             int temp=array[out];   
  6.             int in=out;   
  7.             while(in>0&&array[in-1]>temp){   
  8.                 array[in]=array[in-1];   
  9.                 --in;   
  10.             }   
  11.             array[in]=temp;   
  12.         }   
  13.     }   
  14. }  


选择:

Java代码  
  1. public class SelectSort {   
  2.     public static void sort(int[]array){   
  3.         for(int out=0;out<array.length-1;out++){   
  4.             int min=out;   
  5.             for(int in=out+1;in<array.length;in++){   
  6.                 if(array[in]<array[min]){   
  7.                     min=in;   
  8.                 }   
  9.             }   
  10.             int t =array[out];   
  11.             array[out]=array[min];   
  12.             array[min]=t;   
  13.         }   
  14.     }   
  15. }  


希尔:

Java代码  
  1. public class SheelSort {   
  2.     private int[] hs;   
  3.   
  4.     private int[] a;   
  5.        
  6.     public void sort(){   
  7.         for(int h:hs){   
  8.             for(int i=h;i<a.length;i++){   
  9.                 int in=i;   
  10.                 int inValue=a[i];   
  11.                 while(in-h>-1&&a[in-h]>inValue){   
  12.                     a[in]=a[in-h];   
  13.                     in=in-h;   
  14.                 }   
  15.                 a[in]=inValue;   
  16.             }   
  17.         }   
  18.     }   
  19.        
  20.   
  21.     public int[] getHs() {   
  22.         return hs;   
  23.     }   
  24.   
  25.     public void setHs(int[] hs) {   
  26.         this.hs = hs;   
  27.     }   
  28.   
  29.     public int[] getA() {   
  30.         return a;   
  31.     }   
  32.   
  33.     public void setA(int[] a) {   
  34.         this.a = a;   
  35.     }   
  36. }  



快速:

Java代码  
  1. public class SpeedSort {   
  2.     private int[] a;   
  3.   
  4.     public void sort() {   
  5.         int begin = 0;   
  6.         int end = a.length - 1;   
  7.         quickSort(begin, end);   
  8.         for (int i : a) {   
  9.             System.out.print(i + " ");   
  10.         }   
  11.     }   
  12.   
  13.     private void quickSort(int begin, int end) {   
  14.         if (begin >= end) {   
  15.                    
  16.         } else {   
  17.             int pivot = a[end];   
  18.             int result = getPivot(begin, end, pivot);   
  19.             quickSort(begin, result - 1);   
  20.             quickSort(result + 1, end);   
  21.         }   
  22.   
  23.     }   
  24.   
  25.     private int getPivot(int begin, int end, int pivot) {   
  26.         begin = begin - 1;   
  27.         int o = end;   
  28.         while (true) {   
  29.             while (a[++begin] < pivot) {   
  30.   
  31.             }   
  32.             while (end > 0 && a[--end] > pivot) {   
  33.   
  34.             }   
  35.             if (begin >= end) {   
  36.                 break;   
  37.             } else {   
  38.                 swap(begin, end);   
  39.             }   
  40.         }   
  41.         swap(begin, o);   
  42.         return begin;   
  43.     }   
  44.   
  45.     private void swap(int begin, int end) {   
  46.         int t = a[begin];   
  47.         a[begin] = a[end];   
  48.         a[end] = t;   
  49.     }   
  50.   
  51.     public int[] getA() {   
  52.         return a;   
  53.     }   
  54.   
  55.     public void setA(int[] a) {   
  56.         this.a = a;   
  57.     }  

TAG: java JAVA

 

评分:0

我来说两句

我的栏目

日历

« 2024-01-09  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 3286
  • 日志数: 6
  • 图片数: 1
  • 建立时间: 2011-03-12
  • 更新时间: 2011-08-05

RSS订阅

Open Toolbar