【刷题之路】快速排序

原创 2016年05月30日 21:02:47

经典算法

class QuickSort {
public:
    int* quickSort(int* A, int n) {
        // write code here
        quicks(A,0,n-1);
        return A;
    }
    void quicks(int* a,int left,int right){
        int i,j,temp;
        if(left<right){
            i=left;
            j=right;
            temp=a[i];
            while(i<j){
                while(i<j&&temp<=a[j]) j--; //从后往前依次寻找第一个比temp小的数,并与a[i]交换,现在a[j]空出来了
                if(i<j) a[i++]=a[j]; //注意i++与j--,i 与j在本次循环中已经调整过,下一次循环应该从下一个与上一个开始
                while(i<j&&temp>a[i]) i++;//从前往后依次寻找第一个比temp大的数,将a[j]的坑填上,一次循环结束
                if(i<j) a[j--]=a[i];
            }
            a[i]=temp; //最后temp填入最后的坑中
            quicks(a,left,i-1); //递归实现
            quicks(a,i+1,right);
        }
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

一道快速排序题的解析

关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是 ()。...
  • sinat_35512245
  • sinat_35512245
  • 2016年12月17日 17:42
  • 569

基于快速排序思想的三个算法题

一,最小的k个数 输入n个数,找出其中最小的k个数,例如输入4,5,1,6,2,7,3,8,个数字,则最小的数字是1,2,3,4 基于O(n)的算法,可以用基于Partion函数解决这个问题,如果基于...
  • tuke_tuke
  • tuke_tuke
  • 2016年05月22日 20:30
  • 3859

程序员常用的刷题网站

1、Lintcode Lintcode.com——LintCode网站是国内较大的在线编程&测评网站。此网站提供各大IT公司的算法面试题类型,行分门别类,由简单到中等,再到难,便于不同水平的程序员进...
  • Winnielyn623
  • Winnielyn623
  • 2017年07月26日 18:20
  • 2747

Java 刷题

Java抽象类可以实例化吗? 抽象类不能用来创建对象;方法重载(overload): 1.必须是同一个类 2方法名(也可以叫函数)一样 3参数类型不一样或参数数量不一样方法的重写(overri...
  • u012063703
  • u012063703
  • 2016年01月18日 17:48
  • 1690

谈谈程序员面试之刷题

前一段时间有一个非常有趣的故事(http://www.pingwest.com/sorry-cant-hire-you/  ),Max Howell (Homebrew的作者) 在 Google 面试...
  • github_39335046
  • github_39335046
  • 2017年06月29日 17:03
  • 2049

Python 刷题(想练python的可以对着刷一刷,持续更新)

这道题的意思是说
  • geniusluzh
  • geniusluzh
  • 2014年04月23日 10:36
  • 8128

程序员必备技术网站及刷题网站 | Java我最强

今天小编为各位程序员总结了一些必备的 技术网站和刷题网站 技术网站  https://github.com/ 开源代码库以及版本控制系统。 ...
  • Java_wozuiqiang
  • Java_wozuiqiang
  • 2017年07月28日 17:11
  • 2908

LintCode刷题(入门篇)

LintCode(入门篇)
  • tianshuai4317618
  • tianshuai4317618
  • 2017年11月06日 15:21
  • 109

hdu刷题目录

1001       这个就不用说了吧 1002       简单的大数 1003       DP经典问题,最大连续子段和 1004       简单题 1005       找规律(循环点...
  • small__snail__5
  • small__snail__5
  • 2016年08月30日 19:44
  • 621

LeetCode:在线编程刷题网站

LeetCode 是一个美国的在线编程网站,上面主要收集了各大IT公司的笔试面试题,对于应届毕业生找工作是一个不可多得的好帮手,尤其是在面试BATH程序员的时候,刷一下LeetCode,甚至会刷到原题...
  • u011501388
  • u011501388
  • 2017年09月15日 17:18
  • 199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】快速排序
举报原因:
原因补充:

(最多只允许输入30个字)