C语言实现稳定的快排
关于这种稳定的快排的思路,请看我之前的这篇文章:
《对数器&Python实现稳定快排》
下面是实现代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int split(char* str, int dataList[20], const char* separator)
{int n=0;char* ret;ret = strtok(str,separator);while(ret!=NULL){dataList[n++] = atoi(ret);ret = strtok(NULL, separator);}return n;
}void quicklySort(int num, int* array)
{if(num==1||num==0){}else if(num==2){if(array[1]<array[0]){array[0] = array[0]+array[1];array[1] = array[0]-array[1];array[0] = array[0]-array[1];}}else if(num>2){int flag=array[0],count=0;for(int i=1; i<num; i++){if(array[i] < flag){int temp_1;temp_1 = array[i];array[i] = array[count+1];array[count+1] = temp_1;count++;}if(array[i] >= flag){}}int temp_2;temp_2 = array[count];array[count] = array[0];array[0] = temp_2;quicklySort(count, array);quicklySort(num-1-count, &array[count+1]);}}int main()
{int num, array[20];char data[100];const char* separator = " ";printf("input number list separated by spaces:");gets(data);num = split(data, array, separator);//对array[]进行快速排序,本文采用的是具有稳定性的改进快排quicklySort(num,array); for(int i=0; i<num; i++){printf("%d ",array[i]);} return 0;
}
运行效果:
分享就到这里,感谢观看。
“写程序,不比其它的学科,动手才是硬道理。” ——绝影Hamber
C语言实现稳定的快排相关推荐
- 快排 c语言,c语言的库函数之快排
之前都是手写的快排 但是毕竟写太多快排了 是时候用一波他自己自带的快排了说实话要不是之前用了一次 stl 感觉封装好了的东西实在是太好用了 不禁又回想起当初用python 写的复杂的数据结构 简直不要 ...
- c语言程序快排,C语言快排
C语言使用快排的方式有两种,1.直接用库函数stdlib.h里的qsort函数 2.自己编写快排代码(第一种方便,第二种较为自由) qsort 的函数原型是: void qsort(void*base ...
- [剑指offer]JT29---最小的K个数(靓仔靓女,快进来学习快排讷!)
剑指offer第二十九题 题目如下 思路与代码 sort()函数解千愁,面试官不愿回眸 十年磨一剑,快排永争先(手写快排) 题目如下 思路与代码 sort()函数解千愁,面试官不愿回眸 很简单,就是排 ...
- C语言快排函数qsort()
原本以为C语言中的快排函数都要靠自己去实现,今天才知道,原来qsort就是C语言中的快排函数,包含在stdlib.h头文件中,函数一共有四个参数,没有返回值. //int (*cmp)(const v ...
- C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序
常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...
- C语言手写快排算法,两个值时也可以使用哦!
最近刷leetcode经常碰到排序问题,大家都知道排序算法中快速排序是效率很高的算法,因此快排写法是必须要掌握的哦! 解题思路 利用快排对数组进行排序. 快排:冒泡排序的改良. 快排目标:将数组从大到 ...
- c语言寻找大富翁,PTA 7-38 寻找大富翁(25 分)解法(C/C++)暴力快排/精准堆排 解法...
7-38 寻找大富翁 (25分) 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人.假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁. 输入格式: 输入首 ...
- c语言 快排,C语言 快排函数
C语言中有快排的函数,可以直接使用,见下面调用格式: qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序.排序之后的结果仍然放在原数组中.使用qsort函数必须自己写 ...
- c语言中快排函数,c语言快排函数详解
c语言快排函数详解 int cmp(const void *a, const void *b) 返回正数就是说 cmp 传入参数第一个要放在第二个后面, 负数就是传入参数第一个要放第二个前面, 如果是 ...
最新文章
- 相关计算机专业的英语文献,英文文献及翻译计算机专业.doc
- 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)
- [luogu5004]专心OI - 跳房子【矩阵加速+动态规划】
- linux更换主板后无法启动网卡
- 聊聊spring cloud gateway的XForwardedHeadersFilter
- 英文科技写作 · 经验分享 · 讨论合集
- 在创业公司工作不划算了!
- Perl 简单读写XML 文件
- Flask-Uploads文件上传的简单使用
- (转)Atom安装插件被墙,解决方案:给apm设置中国国内镜像
- Python分词、情感分析工具SnowNLP使用方法
- 中文版Excel 2007公式与函数应用宝典
- 网络战武器——震网(Stuxnet)病毒
- C4D新建立方体对象不显示?
- react 工程启动运行时,报错Content not from webpack is served from ...
- 国际:十种学习新技术的方法
- Netty空闲检测之写空闲
- OpenCV图像的基本操作
- 各种注释-注释多行与取消多行注释快捷键
- 拼多多商品详情,产品竞价,关键词搜索接口