摘要: 1 //C语言实现 2 3 void mergeSort(int array[],int first, int last) 4 { 5 if (first < last)//拆分数列中元素只剩下两个的时候,不再拆分 6 { 7 int mid = (first + last) / 2; 8 //递归拆分数组 9 mergeSort(array, first, mid);10 mergeSort(array, mid + 1, last);11 //归并两个数组12 merge(a... 阅读全文
posted @ 2013-09-17 17:44 hellocby 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 插入排序:将一个数据插入到一个已经排好序的有序数据序列中,从而得到一个新的、个数+1的有序数列;插入排序适用于少量数据排序,时间复杂度为O(n^2)。实现思路:1.对于一个无序数组,选取第一个元素,看作一个有序数组 2.从第二个元素开始,插入到前面的有序数列 3.插入时,从有序数列的倒序开始,进行大小判断和位置调整,直至生成新的有序数列 4.算法实现如下("扑克牌抓牌"时的排序方式就是“插入排序”) 1 //C语言实现 2 void insertionSort(int array[],int num) 3 { 4 //正序排列,从小到大 5 for (i... 阅读全文
posted @ 2013-09-17 11:25 hellocby 阅读(403) 评论(0) 推荐(0) 编辑