#include <stdio.h>// 数组长度
#define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) )/** 快速排序** 参数说明:*     a -- 待排序的数组*     l -- 数组的左边界(例如,从起始位置开始排序,则l=0)*     r -- 数组的右边界(例如,排序截至到数组末尾,则r=a.length-1)*/
void quick_sort(int a[], int l, int r)
{if (l < r){int i,j,x;i = l;j = r;x = a[i];while (i < j){while(i < j && a[j] > x)j--; // 从右向左找第一个小于x的数if(i < j){//a[i++] = a[j];a[i] = a[j];i++;}while(i < j && a[i] < x)i++; // 从左向右找第一个大于x的数if(i < j){a[j] = a[i];j--;}}a[i] = x;quick_sort(a, l, i-1); /* 递归调用 */quick_sort(a, i+1, r); /* 递归调用 */}
}void main()
{int i;int a[] = {30,40,60,10,20,50};int ilen = LENGTH(a);printf("before sort:");for (i=0; i<ilen; i++)printf("%d ", a[i]);printf("\n");quick_sort(a, 0, ilen-1);printf("after  sort:");for (i=0; i<ilen; i++)printf("%d ", a[i]);printf("\n");
}

转载于:https://www.cnblogs.com/yuwensong/p/3885391.html

linux C 快速排序法相关推荐

  1. 1.16 快速排序法(Quicksort)

    快速排序(Quicksort)是对冒泡排序的一种改进,是一种排序执行效率很高的排序算法. 快速排序的基本思想是:通过一趟排序,将要排序的数据分隔成独立的两部分,其中一部分的所有数据比另外一部分的所有数 ...

  2. 探索初级算法学习笔记-快速排序法

    快速排序法学习笔记 #include<stdio.h>void swap(int *a,int *b) {int t;t=*a;*a=*b;*b=t; }void quickSort(in ...

  3. php四种基础算法:冒泡,选择,插入和快速排序法

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一个初级phper,虽然很少接触到算法方面的东西 .但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要 ...

  4. 算法之旅 | 快速排序法

    HTML5学堂-码匠:前几期"算法之旅"跟大家分享了冒泡排序法和选择排序法,它们都属于时间复杂度为O(n^2)的"慢"排序.今天跟大家分享多种排序算法里使用较广 ...

  5. oracle快速排序法,经典算法系列之快速排序算法

    快速排序(Quicksort)是对冒泡排序的一种改进.由C. A. R. Hoare在1962年提出.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但 ...

  6. 【JavaScript算法】---快速排序法

    一.快速排序法概念 我们将一个杂乱无章的数组进行一个快速排序,可以先从一个数组中取一个中间值,将一个数组一分为2,左边的数组跟中间值进行比较,小的放在左边,大的放在右边.比较完毕后再次取中间值,再次比 ...

  7. 快速排序法实战入门(推荐)

    //主要思路:先选第一个数组的值记为基准数     //从最后一个素组j的值开始与基准数比较,倒推(j--)      //当找到比基准数小的数值时,停止比较,     //从第一个数组i的值开始与基 ...

  8. 别出心裁的Linux系统调用学习法

    别出心裁的Linux系统调用学习法 操作系统与系统调用 操作系统(Operating System,简称OS)是计算机中最重要的系统软件,是这样的一组系统程序的集成:这些系统程序在用户对计算机的使用中 ...

  9. c语言排快速排序过程,C语言中快速排序法怎么排

    快速排序法的排法:首先每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边:然后将大于等于基准点的数全部放到基准点的右边:最后在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之 ...

最新文章

  1. 【错误记录】Android Studio 编译报错 ( Installed Build Tools revision 31.0.0 is corrupted )
  2. PAT甲级1089 Insert or Merge:[C++题解]插入排序、归并排序
  3. fopen php 乱码,如何解决php fgets读取文件乱码的问题
  4. c语言上机报告之水仙花数,C语言上机报告之水仙花数..doc
  5. ADO.NET 3.5 Cookbook:一、连接数据(1)保存连接字符串
  6. w7提示无法关闭计算机,win7关不了机怎么回事?老司机教你怎么解决电脑关不了机...
  7. map排序;MD5加密
  8. keras.preprocessing.image函数比较
  9. Julia : string =Int,Float
  10. setuna软件使用问题:Win10(专业版)在使用setuna时,启动快捷键(Ctrl+A)截屏后屏幕会放大
  11. 电脑系统怎么重装?U盘安装Windows XP系统保姆级教程
  12. backupexec Oracle授权,通过BackupExec重定向Oracle 8I数据库
  13. 西门子定位器6DR5020-0NG00-0AA0
  14. 如何用软文打造口碑营销?
  15. canvas圆形、半圆形进度条
  16. IETester更新至最新版已经兼容Windows7(附下载地址及Debugbar插件)
  17. Qt5.9.6 vs2015 SQlite 数据库增删改查
  18. 网络研讨室_Excel问题,修复和网络研讨会
  19. 硬件设计实战+PCB资料分享
  20. 利用Python进行数据分析(四):数据加载、存储与文件格式

热门文章

  1. 井下三专两闭锁的内容_局部通风机三专两闭锁具体规定
  2. basys2数码管共阳还是共阴_数据选择器Multiplexer || 数码管动态显示 ||实现逻辑函数 || 重难考点 || 数电...
  3. 金山手机控usb调试模式开启工具_不看不知道手机有多卡!一款深挖手机的良心工具...
  4. oracle 容器切换,oracle12c 多租户管理四(容器连接切换)
  5. inotifywait监听php,利用inotifywait监控主机文件和目录
  6. Android中的动画
  7. API数据安全知多少【知识篇】
  8. HTTP协议中的Content-Encoding
  9. Scrapy学习大全
  10. tf.summary.scalar()和tf.summary.histogram