本文主要阐述了四种排序方法
冒泡、插入、选择、快排
1. 冒泡
int [] arrs ={9,8,7,6,5};
for (int i=0;i<arrs.length-1;i++) {
int temp = 0;
for(int j=0;j<arrs.length-1-i;j++){
if(arrs[j]>arrs[j+1]){
temp=arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
}
}
}
2. 选择
int[] arrs = {5,6,3,2,1,4};
for (int i = 0; i < arrs.length-1; i++) {
int temp=i;
for (int j = i+1; j < arrs.length; j++) {
if(arrs[temp]<arrs[j]){
temp=j;
}
}
int c=arrs[i];
arrs[i]=arrs[temp];
arrs[temp]=c;
}
3. 插入
int [] arrs = {20,65,445,7,4,3,22,567};
//从第2个人开始进行插入
for (int i = 0; i < arrs.length; i++) {
//拿出前面一个人
int pos = i-1;
//后面的同学要插入
int temp = arrs[i];
//比较到前面1个人比temp矮或者比较到0
while(pos>=0 && arrs[pos] < temp){
arrs[pos+1]=arrs[pos];
pos--;
}
arrs[pos+1]=temp;
}
4. 快排
private void quick (int low,int high){
int lo = low,hi =high;
if(lo>=hi){
return;
}
boolean flag = false;
while(lo<hi){
if(menus.get(lo).getId()<menus.get(hi).getId()){
Menus temp = menus.get(lo);
menus.set(lo,menus.get(hi));
menus.set(hi,temp);
flag=!flag;
}
if(flag)
lo++;
else
hi--;
}
lo--;hi++;
quick(low,lo);
quick(hi,high);
}