算法导论
xidianliusoftware
这个作者很懒,什么都没留下…
展开
-
插入排序
插入排序:每次从待排序的数中拿出一个作为key,和前面的数字依次开始比较,如果待排序的数字小,则将比较的数后移,然后继续比较,直到找到小于key的数字。代码:#include void insert_sort(int arr[],int len);void insert_sort(int arr[],int len){ int i,j; int key;原创 2011-12-03 16:21:11 · 295 阅读 · 0 评论 -
堆排序
堆排序:1.将待排序记录按照堆的定义建初堆,并输出堆顶元素。2. 调整剩余的记录序列,利用筛选法将前n-i个元素重新筛选建成一个新堆,在输出堆顶元素3. 重复执行,进行n-1次筛选。代码实现#include#includevoid sift(int r[],int k,int m){ int t; int i,j; bool finished=false原创 2011-12-10 17:14:46 · 330 阅读 · 0 评论 -
归并排序
1. 2路归并排序 给两个已经排好序的长度相等的数组a,b将排序结果记录到数组C中。算法:取两个下标i,j分别记录数组a,和b的下标,每次那次a[i]和b[j]作比较,如果a[i]>b[j],则j++,否则i++,如果某个下标超出数组长度,则结束循环,另一个数组将其后的元素依次补到数组C后。void p_merge(int a[],int b[],int c[],int len原创 2011-12-13 17:16:03 · 304 阅读 · 0 评论