C语言常用排序方法大全
C语言常用排序方法大全
/* 2、内排序和外排序 在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序; 3、算法的时间复杂度和空间复杂度 所谓算法的时间复杂度,是指执行算法所需要的计算工作量。 /* 在要排序的一组数中,选出最小的一个数与第一个位置的数交换; 选择排序是不稳定的。算法复杂度O(n2)--[n的平方] for (i=0; i<n-1; i++) /*要选择的次数:0~n-2共n-1次*/ /* 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排 for (i=1; i<n; i++) /*要选择的次数:1~n-1共n-1次*/ *(x+j+1) = t; /*找到下标为i的数的放置位置*/ /* 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上 冒泡排序是稳定的。算法时间复杂度O(n2)--[n的平方] void bubble_sort(int *x, int n) /* 希尔排序是不稳定的。 for (h=n/2; h>0; h=h/2) /*控制增量*/ /* 快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟 快速排序是不稳定的。最理想情况算法时间复杂度O(nlog2n),最坏O(n2) if (low < high) /*要排序的元素起止下标,保证小的放在左边,大的放在右边。这里以下标为low的元素为基准点*/ while (i<j) /*循环扫描*/ if (i<j) while (i<j && *(x+i)<=t) /*在左边的只要小于等于基准点仍放在左边*/ if (i<j) *(x+i) = t; /*一遍扫描完后,放到适当位置*/ /* 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 由堆的定义可以看出,堆顶元素(即第一个元素)必为最大项。完全二叉树可以 从算法描述来看,堆排序需要两个过程,一是建立堆,二是堆顶与堆的最后一个元素 堆排序是不稳定的。算法时间复杂度O(nlog2n)。 */ t = *(x+s); /*暂存开始元素*/ while (j<n) if (t<*(x+j)) /*调整*/ /* for (i=n/2-1; i>=0; i--) void main() /*测试选择排序*/ p = a; /*测试直接插入排序*/ /* /*测试冒泡排序*/ /* /*测试快速排序*/ /* /*测试堆排序*/ /* for (p=a, i=0; i<MAX; i++) |
C语言常用排序方法大全相关推荐
- PythonStock(13):使用stockstats计算股票中的16个常用指标方法大全
前言 使用Python开发一个股票项目. 项目地址: https://github.com/pythonstock/stock 相关资料: http://blog.csdn.net/freewebsy ...
- JS常用属性方法大全
JS常用属性方法大全 1.输出语句:document.write(""); 2.JS中的注释为: 3.传统的HTML文档顺序是:document->html->(hea ...
- python如何给字符串排序_Python语言字符串排序方法
本文主要向大家介绍Python语言字符串排序方法了,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一般情况下,python中对一个字符串排序相当麻烦:一.python中的字符串类 ...
- c语言的5种常用排序方法
c语言的5种常用排序算法 1.冒泡排序(最常用) 冒泡排序是最简单的排序方法:原理是:从左到右,相邻元素进行比较.每次比较一轮,就会找到序列中最大的一个或最小的一个.这个数就会从序列的最右边冒出来.( ...
- 算法学习:常用排序方法
排序是我们的日常开发中经常会遇到的需求,例如,在商品的列表页面,我们可以根据各种维度(销量.价格.人气等)对商品的展示顺序进行改变. 所以,对各个排序的性能的了解也是基础且重要的.我们先对排序这一块进 ...
- 100天精通Python(数据分析篇)——第62天:pandas常用统计方法大全(含案例)
文章目录 一.常用统计方法与案例 1. 求和(sum) 2. 求平均值(mean) 3. 求最小值(min) 4. 求最大值(max) 5. 求中位数(median) 6. 求众数(mode) 7. ...
- r语言 tunerf函数_R语言︱常用统计方法包 机器学习包(名称、简介)
一.一些函数包大汇总 转载于:http://www.dataguru.cn/thread-116761-1-1.html 时间上有点过期,下面的资料供大家参考 基本的R包已经实现了传统多元统计的很多功 ...
- pvrect r语言 聚类_R语言常用统计方法包+机器学习包(名称、简介)
上期帮大家盘点了一下R中常用的可视化包,这期将简要盘点一下关于统计分析与机器学习的R包,并通过简要介绍包的特点来帮助读者深入理解可视化包. 本文作者为"食物链顶端"学习群中的小伙伴 ...
- R 多变量数据预处理_R语言常用统计方法包+机器学习包(名称、简介)
上期帮大家盘点了一下R中常用的可视化包,这期将简要盘点一下关于统计分析与机器学习的R包,并通过简要介绍包的特点来帮助读者深入理解可视化包. 本文作者为"食物链顶端"学习群中的小伙伴 ...
最新文章
- html怎么写三段平行文本,试论实用文体翻译中平行文本的使用
- (JavaWeb)会话跟踪技术Cookie和Session(重点)
- SQL SERVER 数据库邮件配置
- 可自动定时切换的选项卡/滑动门导航代码
- windows终止处理程序( __try __finally) 简单解析
- html文件如何放到服务器上_对网盘泄露说不,自己数据放到自己服务器上,用群辉搭建个人网盘...
- iOS常用于显示几小时前/几天前/几月前/几年前的代码片段
- 蓝宝石英语怎么读_黑金和蓝宝石
- 前端学习(1189):事件基本使用
- 64位程序怎么判断指针是否有效_和微信大佬聊了一夜,他告诉我为什么指针被誉为 C 语言灵魂?...
- 7个Python实战项目代码,让你感受下大神是如何起飞的!
- Linux系统刻盘失败,linux下如何刻盘
- QGraphicsObject Error: Class declarations lacks Q_OBJECT macro.
- webstorm缩进两个字符
- 高质量web前端后台模板
- 六天八小时能否主张加班费?
- TCP之快重传与快恢复
- MySQL的10大经典错误
- Chatbot-检索式模型介绍(三)
- 密码(Password)
热门文章
- 第十六届全国大学生智能车参赛与防疫承诺书
- 关于第十六届大学生智能汽车竞赛 华南赛区补赛办法
- 朋友圈里的一张组合逻辑图
- AI视觉组培训第二弹——入门篇
- 成绩统计自动计算表格_电气计算太慢?62套自动计算EXCEL表格,一键下载秒出结果...
- java 发送邮件_老板要实现SpringBoot发送邮件?大神发了这篇文章后,今晚准点下班...
- angularjs与java_关于angularjs与java结合,获取后台数据并解析的问题
- 如何用python写程序设置当前打印机为默认打印机_从Python打印到标准打印机?
- pthread_mutex_lock 和 pthread_mutex_unlock
- linux下用c 开发web,用C一步步开发web服务器(2)