一.冒泡排序
代码实现
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
boolean flag = true;//设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已然完成。
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr,j,j+1);
flag = false;
}
}
if (flag) {
break;
}
}
}
二.快速排序(冒泡排序的一种改进)
图解:
代码实现:
public static void quickSort(int[] array,int left, int right){
int i,j,t,temp;
if(left>right)
return;
i=left;j=right;temp=array[left];
while(i!=j){
while(array[j]>=temp && i<j)//从右向左找,直到找到小于基准值为止
j--;
while(array[i]<=temp && i<j)//从左向右找,直到找到大于基准值为止
i++;
if(i<j){//互换找到值的为止,让小的在大的值左边
t=array[i];
array[i]=array[j];
array[j]=t;
systemOut(array);//打印数组
}
参考文章:快速排序