/**
* 2018年8月27日
*/
package cn.com.egova;
/**
* @author hq
* 2018年8月27日
*/
public class integerSort {
/**
* 冒泡排序
* @param numbers
*/
public static void bubulleSort(int[] numbers){
int temp;
int size = numbers.length;
for(int i=0;i<size-1;i++){
for(int j=0;j<size-i-1;j++)
if(numbers[j]>numbers[j+1]){
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
}
/**
* 快速排序
*/
private static int getMiddle(int numbers[],int low,int high){
int temp = numbers[low];
while(low<high){
while(low<high&&numbers[high]>temp) high--;
numbers[low] = numbers[high];
while(low<high&&numbers[low]<temp) low++;
numbers[high]=numbers[low];
}
numbers[low]=temp;
return low;
}
public static void quickSort(int[] numbers,int low,int high){
while(low<high){
int middle = getMiddle(numbers,low,high);
quickSort(numbers, low, middle-1);
quickSort(numbers, middle+1, high);
}
}
/**
* 选择排序
*/
public static void selectSort(int[] numbers){
int temp = 0;
int size = numbers.length;
for(int i=0;i<size;i++){
int k =i;
for(int j=size-1;j>i;j--)
if(numbers[j]<numbers[k]){
k=j;
}
temp=numbers[i];
numbers[i]=numbers[k];
numbers[k]=temp;
}
}
/**
* 插入排序
*/
public static void insertSort(int numbers[]){
int size = numbers.length;
int temp=0;
int j=0;
for(int i=0;i<size;i++){
temp = numbers[i];
for(j=i;j>0&&temp<numbers[j-1];j--)
{
numbers[j]=numbers[j-1];
}
numbers[j]=temp;
}
}
/**
* 希尔排序
*/
public static void shellSort(int[] numbers){
int size= numbers.length;
int temp=0;
int j=0;
for(int increment= size/2;increment>0;increment=increment/2){
for(int i=increment;i<size;i++){
temp=numbers[i];
for(j=i;j>=increment;j-=increment){
if(temp>numbers[j-increment]){
numbers[j]=numbers[j-increment];
}
else break;
}
numbers[j]=temp;
}
}
}
}