博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速排序的C语言实现
阅读量:6658 次
发布时间:2019-06-25

本文共 915 字,大约阅读时间需要 3 分钟。

#include 
//快速排序算法/*b是起始索引号m是终止索引号.快排的思想是:1.选取一个基准值.一般选最左边第一个值.2.把其它元素分为两部分,左部分小于或等于这个基准值.右部分大于或等于这个基准值.而这个基准值是分界线.快排的过程是:0.i=第一个元素位置索引号 j=最后一个元素的位置索引号 x等于第i个元素的值1.从位置j开始从右向左找比x小的值的索引号,这个过程就是每一次j都减小1直到找到为止.i==j终止2.将比x小的值填入到i索引的位置.也就是j索引中的值.3.i自增1.4.比较x与位置i上的元素,小于x则i自加,否则把i位置上的值放入到位置j中.i==j终止5.如果i==j则进入第6步,否则回到步骤1.6.返回i的值...小于i的索引的值都小于或等于x,大于i的索引都大于或等于x...左索引号i等于右索引号是快排终止的条件...快排每一次为一个数值找到一个确切的位置...返回值是快排下一次排序划分的依据.*/int quickpartition(int a[],int b,int m){ int i,j,x; i=b,j=m; x=a[i]; while(i
x) break; i++; } a[j]=a[i]; } a[i]=x; return i; }/*快速排序法是一种交换排序法,就是先选一个基准值,然后把小于等于这个基准值的元素划到左边,大于等于这个基准值的值划到右边.*先调用排序算法,然后对左右两边也分别递归调用排序算法.* 递归调用自身*/void quicksort(int a[],int b,int m){ int i,j,k; if(b

输出如下:

输出:10    25    38    45    45    66    88    90

 

转载于:https://www.cnblogs.com/OneL1fe/p/6561253.html

你可能感兴趣的文章
[NOIp]二叉树的指针实现
查看>>
git 已经commit 没有 poll / upload 回退
查看>>
in 笔试题目 前端总结 abc类地址 转载
查看>>
系统崩溃分析
查看>>
shiro学习笔记1
查看>>
南浮的IT民工
查看>>
linq 基本用法
查看>>
三个水杯 (bfs)
查看>>
jersey在 spring boot 添加 packages 扫描路径支持
查看>>
PropertyGrid仿VS的属性事件窗口
查看>>
PHP数组排序
查看>>
数据库表 修改原则
查看>>
对sssp项目搭建的补充,总错误处理。
查看>>
花(cnm加强)
查看>>
SQL Server取datetime的日期部分
查看>>
sqlserver 访问oracle
查看>>
三,对于printf函数和C语言编程的初步拓展
查看>>
Centos7更改主机名
查看>>
1004. 成绩排名 (20)
查看>>
用正则检测密码 比如 必须包含 大写 小写字母 数字 长度最小6位
查看>>