
算法与数据结构
lanco刘
学无止境
展开
-
PHP实现四种常用O(N^2)级别算法-冒泡,插入,选择,希尔
冒泡排序:冒牌排序是最经常见的排序算法之一了,因为太简单了,思路正如名字一样,冒泡---把小的往上(前)冒,直到最后有序function sortArr($arr) { $length = count($arr); for($i=0;$i<$length-1;$i++) { for($k=$length-1;$k>$i;$k--){ i...原创 2018-04-10 20:35:10 · 208 阅读 · 0 评论 -
快速排序-三路快排
快速排序可能是应用最广泛的排序算法了,它的实现简单,只需要一个很小的辅助栈,将长度为N的数组排序所需时间和NlogN成正比,在本篇文章讲述一下改进的快速排序-三路快排三路快排所谓三路快排,一言以蔽之,就是同时排序小于选定值,等于选定值和大于选定值三种情况在这里我们随机选取一个值v作为分界点,分别排序小于v,等于v和大于v的,这里之所以随机选取是考虑到如果我们选取数组第一个值,那么在一个完全有序的数...原创 2018-04-30 11:47:33 · 5302 阅读 · 0 评论 -
归并算法
归并算法是比较常见的的一种算法,它是将两个有序数组归并为一个更大的有序数组,他能够保证将任意长度为N的数组排序所需时间和NlogN成正比;不足点是它所需的额外空间和N成正比。如果能够理解递归,这个算法还是很好理解的:下面是自顶向下归并排序import java.util.*; public class MergeSort { private static void merge(Comparab...原创 2018-04-29 20:15:47 · 221 阅读 · 0 评论