几种排序算法的C语言实现
来源:互联网 发布:防火墙软件下载 编辑:程序博客网 时间:2024/05/20 09:24
最近在学习算法导论;前两章讲的是排序的问题,就在博客上一下几个算法的思路和代码,当做是个练习吧。首先写
两个生成数据和打印数据的函数。
<一>插入排序;插入排序的思想很容易理解,就想打牌的时候一样;我们总是从从还没排好序的那一部分里找一个数
,把它插入到已经排好序的那一部分,这样这个数就从未排好序的那部分进入了排好序的那一部分;如此交替,知道每个数
都已经在排好序的那一部分里。分析复杂度:在最好情况下O(n),最坏情况之O(n^2)
代码如下:
<二>选择排序:这个方法来自于第二章练习题:首先找出A中最小元素,与A[0]交换,然后找出A中次小元素,与A[1]交换。。。。代码如下:最好或最坏情况下都是O(n^2)
<三>合并算法:用分治的方法,把每个序列分成两个序列,再分别对两个序列排序,然后将排好序的子序列合并;合并用到了
了递归(分治)的思想,为了研究复杂度,写出递归式。T(n)=2T(n/2)+O(n); O(n)是将两个排好序的子序列合并时的复杂度;
根据二叉树的启示,我们可以构造一个深度为lgn+1的二叉树,每一次都有cn的操作,总的复杂度为O(nlgn)
<四>合并排序和插入排序;已经发现在一定范围内,nlgn>n^2;所以在先使用合并算法,当
n较小时,插入排序。
0 0
- c语言实现几种排序算法
- 几种常用排序算法的C语言实现
- 几种常见排序算法的c语言实现
- 几种常用排序算法的C语言实现
- 几种常见排序算法的C语言实现
- 几种排序算法的C语言实现
- 几种C语言实现的排序算法
- 几种常见排序算法的c语言实现
- 几种常见排序算法的c语言实现
- C语言几种排序算法的实现
- 几种常用的排序算法(c语言实现)
- c语言实现几种排序算法OC实现
- C语言实现几种常见排序算法
- c语言编程的几种排序算法比较
- C语言几种排序算法比较
- C语言几种排序算法比较
- c语言的几种常用排序的实现
- 几种排序方法的实现 (C语言)
- 关于自己
- 第一场 第二题
- Windows7+CentOS双系统同一硬盘
- java模拟form表单提交图片文件Posted by
- C语言编程规范
- 几种排序算法的C语言实现
- SVM的提出
- SqlYog工具执行导入比较大sql文件报错
- PHP中的HTTP协议
- Linux使用dd命令测试硬盘读写速度
- SNMP Object Navigator
- Linux Set or Change User Password
- 【LeetCode】Binary Tree Inorder Traversal
- VS2010(64位) DLL 无法正常加载问题解决方案