花了点时间一次性实现9个基本排序算法,
其中包括:
【冒泡排序】,【直接选择排序】,【直接插入排序】,
【希尔排序】,【折半插入排序】,【快速排序】,
【堆排序】,【锦标赛排序】,【归并排序】。
储存方式是用数组,元素可以是支持重载运算符的自定义类型,
有在数组中直接复制的,也有在中间过程中用索引记录的,
但最终都结果都保存在原数组中,废话不多说了,直接上代码!...
分类:
编程语言 时间:
2015-01-17 19:31:03
阅读次数:
226
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
//直接插入排序
void InsertSort(int R[],int n)
{
int i,j;
int tmp;
for(i=1;i<n;i++)//数组下标从0开始,第一个有序,所以从1...
分类:
编程语言 时间:
2015-01-06 18:07:39
阅读次数:
169
排序算法注意点:
插入类排序:1:直接插入排序O(n^2)
2:折半插入排序O(n^2)
3:希尔排序 O(n乘以log以2为底,n的对数)
空间复杂度都是O(1)
交换类排序:1:冒泡排序O(n^2),空间复杂度O(1)
2:快速排序O(n乘以log以2为底,...
分类:
编程语言 时间:
2015-01-06 18:03:00
阅读次数:
165
var arr = [38,49,65,97,76,13,27,49];var BIN_INSERTSORT = function(arr){ var i, j,temp,low,mid,high; var n = arr.length; for( i = 1;i=low;j--){ ...
分类:
编程语言 时间:
2014-12-23 13:44:16
阅读次数:
185
经典排序算法 – 插入排序Insertion sort
插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
以下代码仅供参考,欢迎指正
...
分类:
编程语言 时间:
2014-12-16 13:34:39
阅读次数:
197
#include#define MAXSIZE 100 //假设文件长度,即待排序的记录数目typedef int KeyType;typedef struct{ KeyType key;}RcdType;typedef struct{ RcdType R[MAXSIZE+1];//...
分类:
编程语言 时间:
2014-11-22 10:29:13
阅读次数:
237
算法分析:
本题是拓扑排序的典型应用。
由于顶点数量不多,可以采用邻接矩阵来存储图信息,这样算法比较简单,只需要搜索n次,每次把序号最小的入度为0的顶点存储到拓扑序列中就行了。算法思路比较清晰,代码也比较简洁,但时间复杂度和空间复杂度都较高。
另一种方法是采用邻接表存储图信息。由于题目要求输出时编号小的队伍在前,所以在入栈时一定要保证先让序号最小的入度为0的顶点在栈顶,这样根据后进先出的特点,可以把序号最小的顶点存储到拓扑序列中。我采用折半插入排序的方法,把入度为0的顶点按递减序排序,然后对图进行深度优先...
分类:
其他好文 时间:
2014-11-19 16:05:59
阅读次数:
174
排序Time Limit: 1000MS Memory limit: 32678K题目描述 给你N(N#include #include #include #include #include using namespace std;//折半插入排序void B_insertsort(int a[]....
分类:
编程语言 时间:
2014-11-16 22:49:37
阅读次数:
592
http://www.cnblogs.com/archimedes/p/4014912.html
分类:
编程语言 时间:
2014-10-23 23:56:58
阅读次数:
234
插入排序算法主要有三种:直接插入排序、折半插入排序、希尔排序1、直接插入排序:/***直接插入排序,*1、从i-->length-1开始做插入扫描*2、初始化一个要插入的元素(1步骤中的)*3、从0-->i开始做插入排序操作*如果要插入的元素小于0-->i中的某一个元素,则做位置替换,*否者,执行第...
分类:
编程语言 时间:
2014-10-23 20:44:29
阅读次数:
255