排序算法

来源:互联网 发布:网络社会组织 编辑:程序博客网 时间:2024/05/19 11:48

一.冒泡排序


代码实现

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);//打印数组 }
参考文章:快速排序