插入排序可是说是最简单的排序算法之一了,时间复杂度是O(N^2),下面是C语言实现
void insertion_sort(int *A, int n) {
int i, j, x;
//i从1开始而不是从0或2开始
for (i = 1; i < n; i++) {
x = A[i];
j = i - 1;
//j...
分类:
编程语言 时间:
2015-08-01 20:37:57
阅读次数:
151
算法基本思想
选择排序方法的基本思想是:第i趟排序是从线性表后面的n-i+1个数据元素中选择一个值最小的数据元素,并将其与它n-i+1个数据元素中的第1个数据元素交换位置.经过这样的n-1趟排序以后,初始的线性表成......
分类:
编程语言 时间:
2015-08-01 15:42:44
阅读次数:
138
一.概念引入有作者把计数排序也称为桶排序(各个桶中元素的排序采用计数排序),得到数组C后直接从前往后遍历,输出数组值次数组下标,为0就不输出(或者存入原数组,不稳定),不过笔者认为这种说法不严谨(一个很明显的问题是输出会是双重for循环,不过也有那个意思,叫鸽巢排序也未尝不可),因为桶排序要求输入数据在[0,1)范围内(计数排序要求整数;实际上要么全是整数,要么小数,便于划分桶)...
分类:
编程语言 时间:
2015-07-31 16:18:24
阅读次数:
106
接口说明
原型:
void sortIntegerArray(Integer[] pIntegerArray, int iSortFlag);
输入参数:
Integer[] pIntegerArray:整型数组
int iSortFlag:排序标识:0表示按升序,1表示按降序
输出参数:
无
返回值:
void
...
分类:
编程语言 时间:
2015-07-09 11:25:08
阅读次数:
306
排序各种排序算法的比较
冒泡排序基本定义两两比较相邻记录的的关键字,如果反序则交换,直到没有反序的记录为止。时间复杂度分析最好的情况是,数组是有序的,只需要n - 1次的比较,时间复杂度是O(n)O(n)
最坏的情况是,数组是逆序的,需要比较∑i=2n(i?1)=1+2+3+...+(n?1)=n(n?1)2\sum_{i=2}^{n} (i - 1) = 1+2+3+...+(n-1) = \...
分类:
编程语言 时间:
2015-07-07 22:56:21
阅读次数:
169
标准模板库(STL)提供三种类型的组件:容器、迭代器和算法,他们都支持泛型程序设计标准。
容器主要有两类:顺序容器和关联容器。顺序容器(vector、list、deque和string等)是一系列元素的有序集合。关联容器(set、multiset、map和multimap)包含查找元素的键值。
迭代器的作用是遍历容器。
STL算法库包含四类算法:排序算法、不可变序算法、变序性算法和数值算法。...
分类:
编程语言 时间:
2015-07-07 16:58:10
阅读次数:
142