逆龙七步

导航

2014年4月2日 #

二路归并排序算法

摘要: 本文转自:http://blog.csdn.net/caryaliu/article/details/7475700将两个按值有序序列合并成一个按值有序序列,则称之为二路归并排序,下面有自底向上和自顶向下的两种排序算法,自顶向下的排序在本文末讲述,使用递归实现,代码较简洁,经供参考。1. 归并子算法:把位置相邻的两个按值有序序列合并成一个按值有序序列。例如把序列 X[s..u] = {3, 12, 23, 32}和 序列 X[u+1..v] = {2, 5, 8, 99} 合并成序列Z[s..v] = {2, 3, 5, 8, 12, 23, 32, 99}, 注意合并前的元素都位于同一个有序 阅读全文

posted @ 2014-04-02 21:22 逆龙七步 阅读(949) 评论(0) 推荐(0) 编辑

堆排序2

摘要: /*堆排序(小顶堆) 2014.4.2*/ #include using namespace std;//在堆(已是小顶堆)的末位插入数据i后,通过//MinHeapFixup(节点上移)函数调整为小顶堆void MinHeapFixup(int a[], int i) { int j, temp; temp=a[i]; j=(i-1)/2; //父结点 while(j>=0 &&i!=0) { if (a[j]=temp) break; a[i] =... 阅读全文

posted @ 2014-04-02 20:43 逆龙七步 阅读(159) 评论(0) 推荐(0) 编辑