2013年7月29日

堆排序算法与PHP实现

摘要: 堆排序有点小复杂,分成三块:第一块,什么是堆,什么是最大堆第二块,怎么将堆调整为最大堆,这部分是重点第三块,堆排序介绍第一块,什么是堆,什么是最大堆什么是堆这里的堆(二叉堆),指得不是堆栈的那个堆,而是一种数据结构。堆可以视为一棵完全的二叉树,完全二叉树的一个“优秀”的性质是,除了最底层之外,每一层都是满的,这使得堆可以利用数组来表示,每一个结点对应数组中的一个元素.数组与堆之间的关系二叉堆一般分为两种:最大堆和最小堆。什么是最大堆堆中每个父节点的元素值都大于等于其孩子结点(如果存在),这样的堆就是一个最大堆因此,最大堆中的最大元素值出现在根结点(堆顶)节点与数组索引关系对于给定的某个结点的下 阅读全文

posted @ 2013-07-29 18:48 我是Peter 阅读(4602) 评论(0) 推荐(2) 编辑

内部排序冒泡排序、插入排序、选择排序、快速排序的算法和PHP实现

摘要: 冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。/** * 冒泡法,小的在前面 * @param array $arr * @return array */function bubbleSort($arr){ $num = count($arr); if( $num$i;$j--){ if( $arr[$j... 阅读全文

posted @ 2013-07-29 17:18 我是Peter 阅读(382) 评论(0) 推荐(0) 编辑

导航