文档章节

快速排序

 麦金新一
发布于 2016/03/18 10:05
字数 234
阅读 15
收藏 1

"快速排序"的思想很简单,整个排序过程只需要三步:

(1)在数据集之中,选择一个元素作为"基准"(pivot)。

(2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。

(3)对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
    
 public static void quicksort(int[] numbers, int start, int end) {
        if (start < end) {
            int pivot = numbers[(start+end)/2];// 选定的基准值(中间数值作为基准值)
            int temp; // 记录临时中间值
            int left = start, right = end;
            while (left <= right) {
                while (numbers[left] < pivot && left < end) {
                    left++;
                }
                while (numbers[right] > pivot && right > start) {
                    right--;
                }
                if (left <= right) {
                    temp = numbers[left];
                    numbers[left] = numbers[right];
                    numbers[right] = temp;
                    left++;
                    right--;
                }
            }
            if (start < right) {
                quicksort(numbers, start, right);
            }
            if (end > left) {
                quicksort(numbers, left, end);
            }
        }
    }   


public static void main(String[] args) {
        int[] numbers=new int[]{1,34,27,78,23,12,98,67,45,54,32,5,59,33,2,87,46};
        quickSort(numbers,0,numbers.length-1);
        for(int n:numbers){
            System.out.println(n);
        }    
    }

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 8
码字总数 4887
作品 0
朝阳

暂无文章

中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
21分钟前
1
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
25分钟前
1
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
32分钟前
1
0
C++11 智能指针

C++11提供了三个智能指针,std::shared_ptr,std::unique_ptr,std::weak_ptr。最常用的是shared_ptr和unique_ptr。 (1)std::shared_ptr shared_ptr是共享指针,通过在控制块中增加引用计数...

yepanl
33分钟前
1
0
React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部