#include <stdio.h>

void quickSort(int array[], int low, int high){

int i = low; //从左到右

int j = high; //从右边到左

//保存参考值 第一个数作为参考值

int temp = array[low];

if (low < high) {

while (i < j) {

//先从最右边开始找到第一个比temp小的数

while (i < j && array[j] >= temp) {

j--;

}

//找到第一个比temp小得数了。

//交换

array[i] = array[j];

//从左边开始,找到第一个比temp大得数

while (i < j && array[i] <= temp) {

i++;

}

//找到第一个比 temp大得数了。

//交换

array[j] = array[i];

}

//找到临界点的位置

array[i] = temp;

//以i为基准,左边的比temp小, 右边的比temp大

//对左边进行排序

quickSort(array, 0, i-1);

//对右边进行排序

quickSort(array, i+1, high);

}

}

int main(int argc, const char * argv[]) {

int array[] = {3,1,9,2,8,3,7,4};

quickSort(array, 0, 7);

for (int i = 0; i < 8; i++) {

printf("%d ", array[i]);

}

printf("\n");

return 0;

}

转载于:https://www.cnblogs.com/damonWq/p/5033031.html

1209.1——快速排序算法相关推荐

  1. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  2. 快速排序算法实现思想个人理解

    一.概述 快速排序是冒泡排序的改进算法.它也是通过不断比较和移动交换来实现排序的,只不过它的实现增大了记录的比较和移动的距离,将关键字较大的元素从前面直接放到后面,关键字较小的元素直接从后面放到前面, ...

  3. 快速排序算法(基于Java实现)

    title: 快速排序算法(基于Java实现) tags: 快速排序算法 快速排序算法的原理与代码实现: 一.快速排序算法的原理 快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们 ...

  4. java sort算法名称_快速排序算法(Quick Sort)(java)

    /** * 快速排序算法是基于分治策略的一种排序算法,下面是一个递归的快速排序. * @author liuy */ public class QuickSort { public static vo ...

  5. 【算法】快速排序算法的编码和优化

    参考资料 <算法(第4版)>          - - Robert Sedgewick, Kevin Wayne <啊哈! 算法>              - - 啊哈磊 ...

  6. Quick Sort 快速排序算法

    Table of Contents 前言 算法步骤 选取枢纽元 分割数组 算法实现 小数组和插入排序 结语 前言 快速排序算法应该是常见的排序算法中使用的最多的一个,很多语言内置的排序算法都间接或直接 ...

  7. 排序算法系列:快速排序算法

    概述 在前面说到了两个关于交换排序的算法:冒泡排序与奇偶排序. 本文就来说说交换排序的最后一拍:快速排序算法.之所以说它是快速的原因,不是因为它比其他的排序算法都要快.而是从实践中证明了快速排序在平均 ...

  8. 快速排序算法C#实现

    快速排序算法C#实现 最近想把几大经典的排序算法系统的整理过一遍,写下笔记,算是复习吧!! 1.快速排序. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序 ...

  9. 快速排序算法_基于位运算的快速排序算法

    前言 如果你准备看这篇文章,我就当你是懂快速排序算法原理的. 下面是我在2018年10月3日想到的基于二进制位运算对正整数进行的一种快速排序算法,目前的代码只能对正整数进行有效的排序,当然,稍微修改一 ...

最新文章

  1. 对C语言 结构体 和 结构变量
  2. u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?
  3. Spring MVC测试框架入门–第1部分
  4. linux 子目录 挂载,linux – NFS4 – 挂载多个子目录
  5. ZZULIOJ 1067:有问题的里程表
  6. C语言__builtin_choose_expr实现函数重载
  7. “十四五”国家重点研发计划“区块链”重点专项 2022年(附pdf下载地址)
  8. python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
  9. JS编写人物行走动画
  10. LHC有望揭示新的物理学理论
  11. 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails
  12. 【基础知识】~ 建立时间/保持时间
  13. Vulkan是什么?和我一起完成一个简单的Vulkan应用程序
  14. 寒江独钓Windows内核编程-双机调试1
  15. csgo跳投指令_CSGO控制台进阶指令
  16. 票房破9亿,翻拍片《误杀》凭什么口碑票房双丰收?
  17. 简单实现Vite的HRM热更新 ———《第二篇热更新上》
  18. mysql slow query_Mysql 开启 Slow 慢查询
  19. 快速对帝国竞争算法ICA的了解
  20. device的注册流程

热门文章

  1. linux 4.0内核编译选项,linux 2.40.20-8 内核编译选项.doc
  2. givemesomecredit数据_你是如何走上数据分析之路的?
  3. Qt--qss(暗橙色)
  4. C++中 引用与取地址的区别
  5. 51nod 1649 齐头并进 (djikstra求最短路径,只用跑一次)
  6. NSString 使用方法总结
  7. java实现数字(摘要)签名,生成签名文件,防止文件被人篡改内容,分析和实现
  8. HDU Problem - 1969 Pie(二分,精度)
  9. 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区
  10. 关于map的下标操作的2个例子