一.冒泡排序和快速排序
private int [] arr; //定义一个数组
private int size; //定义数组大小
public void Order(int size){ //定义生成一个0-100之间的随机数组
this.size = size;
this.arr = new int[size];
Random rand = new Random();
for(int i = 0;i < size;i++){
this.arr[i] = rand.nextInt(100);
}
}
public void show(){ //展示数组的方法
for(int i = 0;i < size;i++){
System.out.print(this.arr[i] + " ");
}
System.out.println();
}
public static void main(String[] args){ //控制台展示数组
Order md = new Order(size:5);
md.show();
md.bobo();
md.show();
}
冒泡排序(从大到小排序)
public void bobo(){
for (int i = 0; i < size; i++) { //控制循环多少趟
for (int j = 0; j < size - i - 1; j++) { //控制每一趟的循环次数
if (this.arr[j] < this.arr[j+1]) { //若前一个数小于后一个数
int tmp = this.arr[j]; //定义临时变量tmp为小的数
this.arr[j] = this.arr[j + 1]; //调换位置
this.arr[j + 1] = tmp;
}
}
}
}
快速排序:
public void quick(int low,int high){
int lo = low,hi= high;
if(lo>=hi){
return;
}
boolean flag = false;
while(lo<hi){ //0-9,
if(this.arr[lo]<this.arr[hi]){
int tmp = this.arr[lo]; //tmp存放基准数
this.arr[lo] = this.arr[hi];
this.arr[hi] = tmp;
flag = !flag;
}
if(flag){
lo++;
}else{
hi--;
}
}
lo--;hi++;
quick(low,lo);
quick(hi,high);
}