一、直接插入排序
稳定,时间复杂度:最好O(n)、最差O(n^2)、平均O(n^2),空间复杂度O(1)
void InsertSort(int L[], int n)
{
int i, j,key;
for (i = 1; i<n; i++)
if(L[i] < L[i-1])//需要将L[i]插入到有序表L[0...i-1]
{
key = L[i];...
分类:
其他好文 时间:
2014-07-08 13:40:33
阅读次数:
137
1 #include 2 #include 3 using namespace std; 4 int main(){ 5 int n,k,i; 6 string str[100],tmp; 7 cin>>n>>k; 8 for(i=0;i>str[i];10 ...
分类:
其他好文 时间:
2014-07-07 12:52:07
阅读次数:
219
排序算法有很多种,这里在复习和分析的基础上,做一个自己的总结;首先要知道有哪些排序算法,google一下,有云C语言7大经典排序算法(也有8大)。主要包括冒泡排序,快速排序,选择排序,插入排序,希尔排序,归并排序,堆排序,8大的还有基数排序。各有各的版本,代码写法也各不相同。所以这里以整理思路为先,...
分类:
编程语言 时间:
2014-07-06 23:13:49
阅读次数:
301
稳定的排序:1、冒泡排序: 工作原理:依次相邻元素进行比较,将小数放在前面,大数放在后面,每一次扫描是将最大的数放在最右边,每次扫描完之后,下次扫描的个数减一,知道所有的数都放好位置。即第一次扫描:比较第一个数和第二个数,判断大小,小数在前,大数在后,接着比较第二个数和第三个数,依次比较,知道最后....
分类:
其他好文 时间:
2014-07-06 18:29:52
阅读次数:
188
//冒泡是相邻的两个数比较
void bubble_sort_low(int unsorted[],
int count) //低级
{
for (int i =
0; i1; i++) { //比较的趟数
printf("-----------------\n");
for (int j=0; j1-i; j++) {
...
分类:
其他好文 时间:
2014-07-06 00:35:49
阅读次数:
291
冒泡排序是很easy理解和实现,,以从小到大排序举例:设数组长度为N。1.比較相邻的前后二个数据,假设前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,假设N不为0就反复前面二步,否则排序完毕...
分类:
其他好文 时间:
2014-07-05 18:22:11
阅读次数:
157
快速排序是对冒泡排序算法的一种改进型算法,而且快速排序也采用了分治法的思想。快速排序是不稳定排序,平均时间复杂度为:O(n*logn),最坏时间复杂度为:O(n*n),空间时间复杂度:O(logn),但快速排序通常是用于排序的最佳实用的选择。快速排序的思想:从数组选取一个数(通常是第一个数)...
分类:
其他好文 时间:
2014-07-03 23:36:18
阅读次数:
296
冒泡排序--递归实现 1 void SortByRecursion( int *array, int n ) 2 { 3 int i; 4 if(1 == n) 5 { 6 return; 7 } 8 for(i = 0; i array[i...
分类:
其他好文 时间:
2014-07-03 20:07:37
阅读次数:
157
用HTML5实现的各种排序算法的动画比较http://www.webhek.com/misc/comparison-sort/几种排序算法效率的比较来源:http://blog.chinaunix.net/uid-20773165-id-1847742.html1.稳定性比较插入排序、冒泡排序、二叉...
分类:
Web程序 时间:
2014-07-03 00:31:30
阅读次数:
342
继《排序(一)__综述》后,对简单算法中的冒泡排序、简单选择排序和简单插入排序进行较为详细的解析。...
分类:
其他好文 时间:
2014-07-02 07:28:28
阅读次数:
192