- 博客(6)
- 资源 (5)
- 收藏
- 关注
原创 从排序开始(五) 堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。通常所说的堆是一个近似完全二叉树的结构,并同时满足堆的性质:即最大堆子结点的关键字总是小于(如果是最小堆那就是大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为 0 的情形中:父节点 i 的左子节点在位置 (2*i+1);父节点 i 的右子节点在位置 (2*i+2);子节点 i 的父节点在位置 (i-1) / 2;
2013-09-21 23:05:00 1473
原创 从排序开始(四)快速排序
实现:#include using namespace std; void quickSort(int num[], int l, int r){ if (l >= r) return; //实现随机选取基数,即随机选一个数并和最左端的数交换 int k = rand()%(r - l + 1) + l; int t = num[k]; num[k] = nu
2013-09-18 23:10:02 1774
原创 从排序开始(三)归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并操作的过程如下:1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2.设定两个指针,最初位置分别为两个已经排序序列的起始位置3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置4.重复步骤
2013-09-17 23:59:17 1507
原创 从排序开始(二) 希尔排序
希尔排序,是对直接插入排序的改进版本,又称增量缩小排序,实质上是一种分组插入排序。 基本思想是 先取第一个增量step,以该序列内所有下标相差 step 的数作为一组,如 array[0], array[0 + step], array[0 + step*2].....作为一组,array[1], array[1 + step], array[1 + step*2]....作为一组,然后对
2013-09-15 20:47:31 1844 1
原创 从排序开始(一)冒泡排序、插入排序与选择排序
学习算法,怎么可以不懂排序?但很多时候,我们习惯了用 sort 和 qsort,对于具体排序,我们也许真忘光了。冒泡排序(Bubble Sort): 说起排序就不能不说冒泡(Bubble Sort),它非常简单,维基中这样解释“重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经
2013-09-15 20:07:34 1657
原创 Centos 6.4 python 2.6 升级到 2.7
一开始有这个需求,是因为用 YaH3C 替代 iNode 进行校园网认证时,一直编译错误,提示找不到 Python 的某个模块,百度了一下,此模块是在 Python2.7 以上才有的,但是系统的自带的Python是2.6版本,难怪一直连不上网。于是,继续百度google,进行安装,后来又出现问题...在此开篇记录一下,权当备忘。查看python的版本#python -V
2013-09-13 21:35:42 166841 7
学生信息管理系统
2013-07-15
自助订餐系统
2013-07-15
[Visual.C.权威剖析--MFC的原理、机制与开发实例
2012-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人