package com.lidong1;
public class Sort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[]={6,2,4,1,3,10,9,0,5,8,7};
//Abc buddle=new Abc();
//buddle.sort(arr);
//Select select=new Select();
//select.sort(arr);
//InsertSort insertSort=new InsertSort();
//insertSort.sort(arr);
QuickSort quickSort=new QuickSort();
quickSort.sort(0, arr.length-1, arr);
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
}
}
class QuickSort{
public void sort(int left,int right,int arr[]){
int l=left;
int r=right;
int pivot=arr[(l+r)/2];
int temp=0;
while(l<r){
while(arr[l]<pivot) l++;
while(arr[r]>pivot) r--;
if(l>=r) break;
temp=arr[l];
arr[l]=arr[r];
arr[r]=temp;
if(arr[l]==pivot) --r;
if(arr[r]==pivot) ++l;
}
if(l==r){
l++;
r--;
}
if(left<r) sort(left, r, arr);
if(right>l) sort(l, right, arr);
}
}
class InsertSort{
public void sort(int arr[]){
for(int i=1;i<arr.length;i++){
int value=arr[i];
int index=i-1;
while(index>=0&&value<arr[index]){
arr[index+1]=arr[index];
index--;
}
arr[index+1]=value;
}
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
}
}
class Select{
public void sort(int arr[]){
int temp;
for(int i=0;i<arr.length;i++){
int minVal=arr[i];
int index=i;
for(int j=i+1;j<arr.length;j++){
if(minVal>arr[j]){
minVal=arr[j];
index=j;
}
}
temp=arr[i];
arr[i]=arr[index];
arr[index]=temp;
}
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
}
}
class Abc{
public void sort(int arr[]){
int temp=0;
for(int i=1;i<arr.length;i++){
for(int j=0;j<arr.length-i;j++){
if(arr[j+1]<arr[j]){
temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
for(int n=0;n<arr.length;n++){
System.out.print(arr[n]+" ");
}
}
}