快速排序————java
阿新 • • 發佈:2018-12-19
package 小米oj;
public class 快速排序 {
public static void main(String[] args) {
int a[] = {3,5,2,44,222,33333,1};
quicksort(a,0,a.length-1);
for(int i=0;i<a.length;i++)
{
System.out.println(a[i]);
}
}
public static void quicksort(int a[],int start,int end)
{
if(start>=end)
return;
int i=start,j=end;
while(i!=j)
{
while(i<j&&a[i]<=a[j])
j--;
swap(a,i,j);
while(i<j&&a[j]>a[i])
i++;
swap(a,i,j);
}
quicksort(a,start,i-1);
quicksort (a,i+1,end);
}
public static void swap(int a[],int i,int j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
將a[i]放到一定的位置,這段程式碼寫得比較生,主要兩段來回換,從而達到N的複雜度