Jiwu Bu

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  32 随笔 :: 0 文章 :: 25 评论 :: 0 Trackbacks

10 2008 档案

posted @ 2008-10-28 20:47 bujiwu 阅读(774) | 评论 (0)  编辑

     摘要: 大根堆排序的基本思想
① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区
② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换,
由此得到新的无序区R[1..n-1]和有序区R[n],且满足R[1..n-1].keys≤R[n].key
③ 由于交换后新的根R[1]可能违反堆性质,故应将当前无序区R[1..n-1]调整为堆。
然后再次将R[1..n-1]中关键字最大的记录R[1]和该区间的最后一个记录R[n-1]交换,
由此得到新的无序区R[1..n-2]和有序区R[n-1..n],且仍满足关系R[1..n- 2].keys≤R[n-1..n].keys,
同样要将R[1..n-2]调整为堆。  阅读全文
posted @ 2008-10-26 22:21 bujiwu 阅读(10349) | 评论 (0)  编辑

     摘要: 几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)
/*
冒泡排序
算法:
核心思想是扫描数据清单,寻找出现乱序的两个相邻的项目。当找到这两个项目后
交换项目的位置然后继续扫描。重复上面的操作直到所有的项目都按顺序排好
时间复杂度n*n (n-1)*n/2
*/  阅读全文
posted @ 2008-10-25 23:53 bujiwu 阅读(6855) | 评论 (1)  编辑