- 博客(6)
- 收藏
- 关注
转载 排序算法学习之归并排序
1. 归并排序原理:有长度为n的子序列a[n],可以将其看做n个长度为1的子序列,将相邻子序列两两归并后子序列数量减少一半,再对子序列进行两两归并,数量又减少一般,重复直到得到一个长度为n的子序列 2. 实现归并操作的代码如下: /*array[s…m]和array[m+1…t]均已各自有...
2014-05-05 13:33:00
82
转载 排序算法学习之堆排序
一、堆与堆排序的产生及定义 在简单选择排序中,每次从n个元素中比较n-1次选取最小的元素,这很好理解,但是前面比较过的数据在之后还要重新比较,这将花费大量的运算时间。堆排序算法就很好的解决了这个问题,堆排序在每次选择到最小记录的同时会根据比较结果对其他数据进行调整,堆排序的时间复杂...
2014-04-26 22:23:00
104
转载 C语言字节对齐
这篇文章讲的非常清晰:http://www.linuxsong.org/2010/09/c-byte-alignment 总结一下: (1)每个结构体成员都有一个有效对齐值N,如果对结构体事先指定了有效对齐值,则N不得超过指定的值(如int自身有效对齐值是4...
2014-04-24 13:17:00
85
转载 排序算法学习之快速排序
快速排序基本思想:选取一个枢轴元素(图简单可选第一个),通过对序列一次遍历(中间涉及到数的交换),将该枢轴放置到序列合适位置,保证其左边数都比它小,右边数都比它大,然后利用递归思想对其左右两个子序列进行同样排序。 快熟排序的基本实现过程:将枢轴元素key备份,序列头尾各设置一...
2014-04-23 15:31:00
108
转载 排序算法学习之希尔排序
直接插入排序对待排数量较少且基本有序的序列,其执行效率是非常高的,希尔排序正是利用了这点,将一个无序的序列拆分成几个子组,然后对几个子组分别进行插入排序。 注意,这儿的分组并不是简单的{a1,a2,a3,b1,b2,b3,c1,c2,c3}(相同字母为一组),而是进行{a1,...
2014-04-23 12:37:00
90
转载 排序算法学习之简单排序(冒泡排序,简单选择排序,直接插入排序)
一、冒泡排序 冒泡排序算是最基础的一种算法了,复杂度为O(N^2),其基本思想是:从最低端数据开始,两两相邻比较,如果反序则交换。代码如下: /*最基本的冒泡排序*/voidBubbleSort1(intn,int*array) /*little>big*/...
2014-04-22 17:45:00
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人