- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 一天一小步(排序——5)
//堆排序有关堆的相关实现参见:最大(小)堆的实现以下是堆排序的实现:templatevoid Heap_Sort(T* a, int n) { Build_MaxHeap(a,n); for(int i=n-1; i>=1; i--) { swap(a[i],a[0]); Max_Heapify(a,i,0); }}
2011-11-11 11:12:41
213
原创 最大(小)堆的实现
//当前节点的父亲节点int parent(int i) { return (i-1)>>1;}//当前节点的左儿子int left(int i) { return (i<<1) + 1;}//当前节点的右儿子int right(int i) { return (i<<1) + 2;}#ifdef RECURRENCE //使用递归调整节点,使其满足最大(小)堆性质
2011-11-11 00:43:51
267
原创 一天一小步(排序——4)
//选择排序templatevoid Select_Sort(T* a, int n){ for(int i=0; i<=n-2; i++) { int min = i; for(int j=i+1; j<=n-1; j++) { if(a[j]<a[min]) min = j; } swap(a[min],a[i]); }}
2011-11-09 13:31:35
221
原创 算法导论总结——第二章
第二章—“算法入门”,这章以插入排序和合并排序为例子,讲述以下几个比较重要的概念1、循环不变式: 一般而言,用这个式子表示希望得到的结果,如果在循环的每一步,这个式子都是正确的,那么循环结束后,这个式子也正确,并得到了期望的结果.三个性质:初始化:它在循环第一次迭代开始之前,应该是正确的;保持:如果在循环的某一次迭代开始之前它是正确的,那么在下一次迭代开始之前它也应该保持正
2011-11-08 13:10:27
272
原创 一天一小步(排序——3)
//冒泡排序templatevoid Bubble_Sort(T* a, int n) { for(int i=0; i<n-1; i++) { for(int j=n-1; j>=i+1; j--) { if(a[j] < a[j-1]) { T t = a[j]; a[j] = a[j-1];
2011-11-07 23:10:30
231
原创 一天一小步(排序——2)
//合并排序templatevoid Merge(T* a, int l, int m, int r){ int n1 = m - l +1; int n2 = r - m; T* L = new T[n1]; T* R = new T[n2]; //初始化L、R数组 for(i
2011-11-07 23:07:24
306
原创 一天一小步(排序——1)
//插入排序templatevoid Insert_Sort(T* a,int n) { int key; for(int i=1; i<n; ++i) { key = a[i]; int j = i-1; while(j>=0&&a[j]>key) { a[j+1] = a[j]; j = j-1; } a[j+1]
2011-11-07 11:12:43
298
activebpel-5.0.2-bin.zip
2014-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人