1.冒泡排序
int[] ints = {1, 5, 3, 755, 34, 63, 26, 4, 75};
for (int i=0;i<ints.length-1;i++){//排序循环次数
Boolean flaw=true;
for (int j=0;j<ints.length-1-i;j++){//每次比较次数
if(ints[j]>ints[j+1]){
flaw=false;
int temp=ints[j];
ints[j]=ints[j+1];
ints[j+1]=temp;
}
}
if (flaw){
break;
}
}
for (int i:ints) {
System.out.print(i+" ");
}
2. 选择排序
int[] ints = {1, 5, 3, 755, -34, -63, 26, 4, 75};
for (int i=0;i<ints.length-1;i++){
int min=ints[i];
int minindex=i;
for (int j=i+1;j<ints.length;j++){
if (min>ints[j]){
min=ints[j];
minindex=j;
}
}
if (i!=minindex){
ints[minindex]=ints[i];
ints[i]=min;
}
}
3插入排序
int[] ints = {1, 5, 3, 755, -34, -63, 26, 4, -75};
for (int i=1;i<ints.length;i++){
int insertindex=i;
int insertsum=ints[i];
while (insertindex>0&&insertsum<ints[insertindex-1]){
ints[insertindex]=ints[insertindex-1];
insertindex--;
}
ints[insertindex]=insertsum;
}
4.希尔排序
int[] ints = {1, 5, 3, 755, -34, -63, 26, 4, -75};
for(int gap=ints.length/2;gap>0;gap=gap/2){//gap为步长;插入排序相当于步长为1的希尔排序
for (int i=gap;i<ints.length;i++){
int insertindex=i;
int insertsum=ints[i];
while (insertindex-gap>=0&&insertsum<ints[insertindex-gap]){
ints[insertindex]=ints[insertindex-gap];
insertindex-=gap;
}
ints[insertindex]=insertsum;
}}
5.快速排序
public void sort(int arr,int left,int right){
if (left>right){
return;
}
int l=left;
int r=right;
while (l<r){
while (arr[r]>=arr[left]) r--;
while (l<r&&arr[l]<=arr[left]) l--;
if (r==l){
int temp=arr[r];
arr[r]=arr[left];
arr[left]=temp;
}else {
int temp=arr[r];
arr[r]=arr[l];
arr[l]=temp;
}
}
sort(arr,left,l-1);
sort(arr,r+1,right);
}