1、选择排序
public static int[] selectSort(int[] arrys){
int high=arrys.length;
for(int i=0;i<high-1;i++){
for(int j=i+1;j<high-1;j++){
if(arrys[i]>arrys[j]){
int temp=arrys[j];
arrys[j]=arrys[i];
arrys[i]=temp;
}
}
}
return arrys;
}
2、冒泡排序
public static int[] bubbleSort(int[] arrys){
for(int i=0;i<arrys.length;i++){
for(int j=0;j<arrys.length-i-1;j++){
if(arrys[j]>arrys[j+1]){
int temp=arrys[j];
arrys[j]=arrys[j+1];
arrys[j+1]=temp;
}
}
}
return arrys;
}
3、插入排序
public static int[] insertSort(int[] arrys){
for(int i=1;i<arrys.length;i++){
int currentElement=arrys[i];
int j;
for( j=i-1;j>=0&&arrys[j]>currentElement;j--){
arrys[j+1]=arrys[j];
}
arrys[j+1]=currentElement;
}
return arrys;
}
4、快速排序
public static int[] quickSort(int a[],int low,int high){
int i=low;
int j=high;
int key=a[low];
if (low < high){
while(i<j){ // 此处的while循环结束,则完成了元素key的位置调整
while(i<j&&key<=a[j]){
j--;
}
int temp=a[i];
a[i]=a[j];
a[j]=temp;
//a[i]=a[j];
while(i<j&&key>=a[i]){
i++;
}
a[j]=a[i];
a[i]=key; //此处不可遗漏
}
quickSort(a,low,i-1);
quickSort(a,i+1,high);
}
return a;
}
5、希尔排序
public static int [] shellSort(int[] arrys){
//定下间隔,时间复杂度是O(N^2)
for(int gap=arrys.length/2;gap>0;gap=gap/2){
for(int i=gap;i<arrys.length;i++){
int tem=arrys[i];
//不仅比较一个间隔的的大小,还要考虑两个及其两个以上间隔数与tem的比较
for(int j=i;j>=gap&&tem<arrys[j-gap];j=j-gap){
arrys[j]=arrys[j-gap];
arrys[j-gap]=tem;
}
}
}
return arrys;
}
6、归并排序
private static void inMergeSort(int[] arrys, int[] temp, int left, int right) {
// TODO Auto-generated method stub
int middle=(left+right)/2;
if(left<right){
inMergeSort(arrys, temp, left, middle);
inMergeSort(arrys, temp, middle+1, right);
merge(arrys,temp,left,middle,right);
System.out.println(Arrays.toString(arrys));
}
}
private static void merge(int[] arrys, int[] temp, int left, int middle, int right) {
// TODO Auto-generated method stub
int i=left;
int j=middle+1;
int k=0;
while(i<=middle&&j<=right){
if(arrys[i]<arrys[j]){
temp[k++]=arrys[i++];
}
else{
temp[k++]=arrys[j++];
}
}
while (i<=middle){
temp[k++]=arrys[i++];
}
while(j<=right){
temp[k++]=arrys[j++];
}
for (int k2 = 0; k2<temp.length; k2++) {
arrys[k2 ] = temp[k2];
}
}
再附上一张绝世好图