public static void insertSort(int[] arr){
int len=arr.length;
if (len<=1){
return;
}
for (int i=1;i<len;i++){
int val = arr[i];
int pos = i;
while(arr[pos-1]>val){
arr[pos]=arr[pos-1];
pos--;
}
arr[pos]=val;
}
}
public class QuickSort {
public static void main(String[] args) {
int[] arr={6,8,7,5,9};
QuickSortCyc(arr,0,arr.length-1);
for (int x:arr) {
System.out.print(x+"\t");
}
}
private static void QuickSortCyc(int[] arr,int start,int end){
int baseVal=arr[start];
int low=start;
int high=end;
while (low<high){
while (arr[high]>baseVal){
high--;
}
while (arr[low]<baseVal){
low++;
}
int tmp=arr[low];
arr[low]=arr[high];
arr[high]=tmp;
}
if (low>start){
QuickSortCyc(arr,start,low-1);
}
if (high<end){
QuickSortCyc(arr,high+1,end);
}
}
}
public static void ShellSort(int[] arr){
int len = arr.length;
if (len<=1||arr==null){
return;
}
int increatNum = len>>1;
while (increatNum>=1){
for (int i=increatNum;i<len;i++){
int tmp=arr[i];
int j=i-increatNum;
while(j>=0&&tmp<arr[j]){
arr[j+increatNum]=arr[j];
j=j-increatNum;
}
arr[j+increatNum]=tmp;
}
increatNum=increatNum>>1;
}
}