今天学习并且编译了快速排序。

什么是快速排序呢?

快速排序要如何实现呢?

首先在编译程序之前对它的原理进行了解:

假如我们这里有一组不规则数列:    A[]

快速排序首先需要找出一个基准数(tmp),然后从两边开始探测。我们分别设置两个变量(i),(j)去指向两边的数,先让j从右向左开始遍历,遇到比基准数小的则停止;再让i从左往右开始遍历,遇到比基准数大的便停止;此时让i所指向的数与j所指向的数交换;一直循环下去;当i与j重合时,将i/j指向的数与基准数交换位置,便可以得到,便可以得到一边全部小于基准数,另一边全部大于基准数的数列。

当i>j时,退出函数。

我们这里使用第一个数“7”作为基准。

接下来,将左边与右边分别进行排序;

逐次递归……

#include<stdio.h>
#include<string.h>void q_sort(int* a, int lo, int hi)
{int tmp = a[lo];int i = lo;int j = hi;int temp;if (i > j){return;}while (i != j)//只有当i小于j时进行以下程序{while (a[j] >= tmp && i < j){j--;}//j从右向左开始遍历while (a[i] <= tmp && i < j){i++;}//i从左往右开始遍历if (i < j){temp = a[i];a[i] = a[j];a[j] = temp;}//a[i]与a[j]交换位置}//基准点与中间点互换位置a[lo] = a[i];a[i] = tmp;q_sort(a, lo, i-1);q_sort(a, i+1, hi);
}int main()
{int a[] = { 34,45,21,32,43,67 };int n = sizeof(a) / sizeof(a[0]);int lo = 0;int hi = n - 1;q_sort(a, lo, hi);for (int i = 0; i < n; i++){printf("%d  ",a[i]);}return 0;
}

快速排序 c语言详解相关推荐

  1. Drools 规则语言详解(上)

    http://www.blogjava.net/guangnian0412/archive/2006/06/09/51574.html http://www.blogjava.net/guangnia ...

  2. 克鲁斯卡尔算法c语言,Kruskal算法(一)之 C语言详解

    最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和 ...

  3. c++指针详解_c语言详解sizeof

    一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等. 它并不是函数. sizeof操作符以字节形式给出了其操作数的存储大小. 操作数可以是一个表达式或括在括 ...

  4. 排座系统c语言,2008noip排座位C语言详解.doc

    2008noip排座位C语言详解 2008noip排座位C语言详解 2.排座椅 (seat.pas/c/cpp)D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列 的同学的位置是 ...

  5. 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解

    本章介绍邻接矩阵有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...

  6. 邻接矩阵用c语言,邻接矩阵无向图(一)之 C语言详解

    本章介绍邻接矩阵无向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...

  7. 如何用c语言编写stm32的程序吗,STM32入门C语言详解

    <STM32入门C语言详解>由会员分享,可在线阅读,更多相关<STM32入门C语言详解(6页珍藏版)>请在人人文库网上搜索. 1.最新 料推荐阅读 flash : 芯片内部存储 ...

  8. 顺序栈基本操作(入栈和出栈)C语言详解

    #include <stdio.h> #include <stdlib.h> /*顺序栈基本操作(入栈和出栈)C语言详解栈的具体实现(1)顺序栈(2)链栈栈的应用(1)回退 ( ...

  9. c语言霍夫曼函数,使用C语言详解霍夫曼树数据结构

    1.基本概念 a.路径和路径长度 若在一棵树中存在着一个结点序列 k1,k2,--,kj, 使得 ki是ki+1 的双亲(1<=i 从 k1 到 kj 所经过的分支数称为这两点之间的路径长度,它 ...

最新文章

  1. 用选框工具画圆角矩形
  2. lol全队消息怎么发_LOL女神公开新男友?亲密合照网友酸了,随后粉丝反应太真实...
  3. layui.use 在a标签内onclick调用
  4. Windows 常用消息大全系统消息、通告消息、用户消息
  5. SpringDataJpa 概述
  6. qtcpserver无法启动监听_EOS基础全家桶(四)启动节点
  7. gephi java教程_Gephi教程汇总
  8. 贪心算法(贪婪算法)
  9. 善政治理、兴业创新:来看看这几个智慧城市建设案例!
  10. 腾讯云运维干货沙龙-海量运维实践大曝光 (一)
  11. 【笔记】c++ - 正则表达式: GNU Regex Library、PCRE, PCRE++、Boost.Regex
  12. php编写六十甲子纳音表_六十甲子顺序表
  13. 【在线教程】pdf文件怎么压缩到最小
  14. Java语言程序设计与数据结构(基础篇)梁勇第九章 *9.3
  15. Swagger-ui.html页面简单的修改
  16. 电脑清灰,你的电脑能有多脏 论清灰的重要性
  17. vim .bashrc进入vim编辑界面之后如何退出
  18. T3出行快手首秀直播PK赛项目总曝光破亿
  19. Android使用SurfaceView播放视频,可以自适应尺寸。
  20. 德国MESSKO D1272AT数字显示器技术问题

热门文章

  1. 开发iPhone应用程序(一)
  2. python题库和答案_Python数据分析与数据可视化_题库免费答案2020
  3. 卡巴斯基反病毒软件KAV 7.0.0.125
  4. 安信Windows驱动开发教程:什么是通用 Windows 平台 (UWP) 应用程序?有什么功能?
  5. MapReduce之mapper以及reducer的个数决定性因素
  6. 大悲宇宙成为第一位送拍世界顶级拍卖行的中国NFT数字艺术家!
  7. 灰度发布引擎java_网关实现灰度发布
  8. 计算机毕业设计Java的影视资讯管理系统(源码+系统+mysql数据库+lw文档)
  9. PostgreSQL从菜鸟到专家 什么是数据库管理系统
  10. 定出公式对应的c语言表达式,代数式到c语言表达式和常用的c语言数学库函数_pow_sqrt_exp_fabs_abs...