![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 52
redwho
这个作者很懒,什么都没留下…
展开
-
插入排序 和 归并排序(分治)的c实现和时间复杂度分析
1、排序算法 输入:n个数。 输出:输入序列的一个排序 ,满足a1' 2、插入排序 插入排序是一个对少量元素排序的有效算法。其算法思想为:对一个序列,从i=2开始依次与前面i-1的元素进行比较,将ai插入a1到ai-1中,使得a1-ai有序,当i=n时,完成an的插入即可得到排序后序列。 void InsertSort(int a[],int length) { in原创 2012-12-20 11:41:12 · 665 阅读 · 0 评论 -
快速排序
快速排序也是一种分治法的实现。与归并排序的不同是其操作是原地进行的,不需要额外的存储空间。 基本思路: 1、基数的选取,普通快速排序在序列中指定a1或an为基数(本例为a1)。 2、记录基数为x。分别定义两个循环L:a2往后的循环;R:an往前的循。两个循环的终止条件是L和R循环到同一个元素时。起始有个空位a1,通过将R循环中比基数x小的数ak放到a1,此时得到空位k,再进行L循环,将比基数原创 2012-12-24 14:52:34 · 299 阅读 · 0 评论 -
冒泡排序
对一个序列,从后往前比较a[k]和a[k-1],当a[k]小于a[k-1]时,交换两者的值。可以知道,当k从n循环到2时,有a[1]是序列的最小值。下一次可以从n循环到3,得到a[2]是第二小的值,如此循环下去最终得到一个有序序列。 冒泡排序是一种相对比较简单的方法,每次循环都能使一个最小值(相对)被交换到最左(相对)的位置。 void BubbleSort(int a[], int l原创 2012-12-20 14:09:24 · 221 阅读 · 0 评论