排序算法·快速排序

来源:互联网 发布:大恒软件技术有限公司 编辑:程序博客网 时间:2024/06/05 21:56
算法讲解方面参阅下面这本书即可,这里只给出自己练习时实现的代码。参考书籍:《算法设计与分析基础》
  • 源码
#include<iostream>using namespace std;void quick_sort(int s[], int l, int r);int main(){    int array[] = {25, 45, 16, 40, 90, 5, 86, 10, 3, 100, 16};    int length = sizeof(array) / sizeof(int);     quick_sort(array, 0, (length - 1));    for (int i = 0; i < length; i++)        cout << array[i] << " ";    cout << endl;    system("pause");    return 0;}void quick_sort(int s[], int l, int r) {    if (l < r){        int i = l, j = r + 1, p = s[l];        do {            do {                j = j - 1;                if (j < l) //防止越界                    break;            } while (s[j] > p);            if (i < j)                s[i] = s[j];            do {                i = i + 1;                if (i > r) //防止越界                    break;            } while (s[i] < p);            if (i < j)                s[j] = s[i];        } while (i < j);        s[--i] = p;        quick_sort(s, l, i - 1);         quick_sort(s, i + 1, r);    }}
  • 执行结果


    这里写图片描述

  • 相关博文
    发现一篇讲解很好的博文:白话经典算法系列之六 快速排序 快速搞定

原创粉丝点击