递归实现:

#include <stdio.h>
int arr[10] = {3, 2, 4, 1, 9, 7, 5, 6, 0, 8};
void print_array()
{
    int i = 0;
    for (i = 0; i < 10; i++)
        printf("arr[%d]:%d  ", i, arr[i]);
    printf("\n");
}
void swap(int *i, int *j)
{
    int temp = *i;
    *i = *j;
    *j = temp;
}

void quick_sort(int left, int right)
{
    if (left >= right)
        return;
    int i = left;
    int j = right;
    while (i < j) {
        while (arr[j] >= arr[left] && j > i) {
            j--;
        }
        while (arr[i] <= arr[left] && i < j) {
            i++;
        }
        if (i != j) {
            swap(&arr[i], &arr[j]);
        print_array();
        }
    }
        swap(&arr[left], &arr[i]);
        print_array();
        quick_sort(left, i-1);
        quick_sort(i+1, right);
}
int main(int argc, char **argv)
{
    int left = 0;
    int right = 9;
    print_array();
    quick_sort(left, right);
    print_array();
}

非递归实现:

转载于:https://www.cnblogs.com/roadmap99/p/6698807.html

array sort - 2 : quick sort相关推荐

  1. 快排Java代码实现(Quick Sort)

    1.  快排算法思路 基本思想:通过一趟快速排序将待排数组分割成独立的两份部分; 其中一部分数组的值均比另一部分数组的值小,则可分别对着两部分数组继续进行排序,以达到整个序列有序. 快排的平均时间复杂 ...

  2. C++Quick sort快速排序的实现算法之二(附完整源码)

    C++Quick sort快速排序的实现算法 C++Quick sort快速排序的实现算法完整源码(定义,实现,main函数测试) C++Quick sort快速排序的实现算法完整源码(定义,实现,m ...

  3. C语言快速排序 quick sort 算法(附完整源码)

    快速排序 quick sort 算法 快速排序 quick sort 算法的完整源码(定义,实现,main函数测试) 快速排序 quick sort 算法的完整源码(定义,实现,main函数测试) # ...

  4. Lecture 4 Quick Sort and Randomized Quick Sort

    Quick Sort --Divide and Conquer --Sorts "in place" --Very practical with tuning Divide and ...

  5. 图解快排——快速排序算法(quick sort)

    快速排序 quick sort 算法思想 算法图解 算法实现(C语言) 性能分析 算法思想 快速排序算法是对冒泡排序算法的一种改进算法,在当前所有内部排序算法中,快速排序算法被认为是最好的排序算法之一 ...

  6. 快速排序 Quick Sort

    快速排序 Quick Sort 我们已经知道,在决策树计算模型下,任何一个基于比较来确定两个元素相对位置的排序算法需要Ω(nlogn)计算时间.如果我们能设计一个需要O(n1ogn)时间的排序算法,则 ...

  7. 迭代的快速排序(Iterative Quick Sort)

    原文地址:Iterative Quick Sort 译者注:教科书中一般介绍的是递归的快速排序,当年在百度校招面试的时候被问到这个问题,没写出来,真是遗憾-- 下面是一种典型的递归的实现,用最后一个元 ...

  8. DSA之十大排序算法第六种:Quick Sort

    快速排序 2019年8月23日17:45:21 之前我们已经分析过 冒泡排序,我建议:当你在看这篇博客的时候,请先回顾 冒泡排序:详见DSA之十大排序算法第一种:Bubble sort 文章目录 一次 ...

  9. 排序——快速排序(Quick sort)

    概况 快速排序(Quick sort)是对冒泡排序的一种改进.快速排序由C. A. R. Hoare在1960年提出. 算法思路 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比 ...

最新文章

  1. qtdesigner怎么实现菜单栏跳转_3种公众号菜单栏设置类型,手把手教你做,不会的话那就再看一遍...
  2. 就算是戴上口罩,AI也知道你在说什么丨EMNLP 2020最佳论文
  3. session may be lost when use window.open to open a new window
  4. 3、Power View—数据透视表般华丽
  5. Kotlin替换Dagger2/Hilt的依赖注入框架--Koin。
  6. node.js项目中常量的配置 - 个人文章 - SegmentFault 思否
  7. sql初学者指南_使用tSQLt框架SQL单元测试面向初学者
  8. [实战]MVC5+EF6+MySql企业网盘实战(24)——视频列表
  9. LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
  10. ctfshow 做题 MISC入门 模块 21~30
  11. 夯实Java基础系列10:深入理解Java中的异常体系
  12. Java将英文句子分解为单词
  13. 首位文博虚拟宣推官“文夭夭”上岗
  14. 记录下:订单模块初步完成
  15. 计算机硬件专业叫什么作用,计算机硬件的五大功能是什么呢
  16. 一个屌丝程序员的青春(一九一)
  17. Spring、SpringMVC、SpringBoot及其插件学习笔记集合(持续更新中....)
  18. linux 限速命令,Linux路由器限速设置详细教程
  19. 不同路径中的文件如何批量改名的实用技巧
  20. js 不得不知道的秘密

热门文章

  1. php中的getdate+函数,PHP中的getdate()函数
  2. android 嵌套分组拖动_GitHub - Mosect/DragLayout: Android拖拽控件,支持上下左右滑动、折叠或者嵌套ListView、RecyclerView等...
  3. python怎么清空屏幕_python如何清屏
  4. linux usb xhci ehci,ehci和xhci有什么区别
  5. python 打开targz文件_Python下使用pandas打开excel文件并进行处理
  6. Python+Opencv实现模板匹配
  7. Linux16.04配置OpenCV3.2
  8. Centos7装NVIDIA显卡驱动(GPU)
  9. Leetcode刷题 34.在排序数组中查找元素的第一个和最后一个位置
  10. NLog日志写文件的一个性能问题