【刷题之路】快速排序

原创 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);
        }
    }
};

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

相关文章推荐

[7] 算法之路 - 快速排序之3轴演算

左轴演算、中轴演算、右轴演算 题目: 快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的...
  • vivitue
  • vivitue
  • 2014年08月21日 00:09
  • 1058

OJ刷题---分治法快速排序

输入代码: //算法分析 //1)设置两个变量I、J,排序开始的时候:I=0,J=N-1; //2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]; //3)从J开始向前搜索,即由后...

每天刷个算法题20160525:快速排序的递归转非递归解法

为了防止思维僵化,每天刷个算法题。这里是快速排序的递归转非递归解法。...

一道快速排序题的解析

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

曾经遇到的一个面试题,快速排序用链表实现,算法和以前的相似,需要注意一些细节处理

typedef struct nodes{ int data; struct nodes * next; } node; void add_node(node *first,int data) ...

快速排序的相关算法题(java)

快速排序的相关算法题(java) 排序 java 快排 算法 关于二分查找的,可以参考我的这篇博客二分查找的相关算法题 关于归并排序的的,可以参考我的这篇博客归并排序 递归版和非递归版的实现(...

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

一,最小的k个数 输入n个数,找出其中最小的k个数,例如输入4,5,1,6,2,7,3,8,个数字,则最小的数字是1,2,3,4 基于O(n)的算法,可以用基于Partion函数解决这个问题,如果基于...

机试算法讲解:第2题 结构体之快速排序

/* 题目: 学生成绩排序:成绩从低到高,姓名字母从低到高(区分大小写),年龄从低到高排序 输入: 3 abc 20 99 bcd 19 97 bed 20 97 输出: bcd 19 97 bed...

面试算法题-单链表的快速排序实现

面试时被问到单链表快速排序的问题,回来仔细实现下,面试时细节没有处理好只说出来一些思想。本人菜鸟请大家指教。 #include using namespace std; typedef s...
  • huruzun
  • huruzun
  • 2014年05月04日 20:10
  • 1181

【编程题】快速排序

前言快速排序是面试题最常到考到的排序算法,以前在课本中学到过,后来看《算法导论》的时候也学到过。印象中,两者大体思想一样,在一些小细节上还有一些不同,这篇文章会总结一下。不过很久不写了,直接拿起来写,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】快速排序
举报原因:
原因补充:

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