
算法
RickyXE
这个作者很懒,什么都没留下…
展开
-
归并排序
归并排序的步骤就是分组->合并,这两步均是递归进行,直到所操作的子组仅有一个元素为止。例如一个数组:6, 3, 1, 9, 2, 7, 4, 5首先分成两组:[6, 3, 1, 9] [2, 7, 4, 5]对于左边,再次分组:[6, 3] [1, 9]再对左边分组:[6] [3]因为各自仅包含一个元素了,这一个元素组成的字数组就是有序的了。接下来向上递归合并:[6] [3] -> [3, 6][原创 2016-08-06 14:31:00 · 440 阅读 · 0 评论 -
快速排序
快速排序的思路是选定一个标志元素,将比这个元素小的所有元素放在一边,比其大的放在另外一边。然后发分别对两个子数组进行同样的操作,直到子数组元素数为1时,整体数组就排好序了。原创 2016-08-04 00:22:58 · 299 阅读 · 0 评论 -
冒泡排序
冒泡排序的思路很简单——从头至尾遍历数组元素,若前一项大于(或小于)后一项,则交换相邻两项。单次遍历整个数组可将某一个元素排列到正确位置,因此需要遍历元素数量n次。在代码中体现也就是内外两层循环,内层循环负责遍历中两两元素的交换操作,外层负责遍历次数控制。首先看版本1:/** * 冒泡排序效率最低写法,没有任何优化步骤 * @param arrayToSort */public static原创 2016-07-17 16:10:38 · 385 阅读 · 0 评论 -
二分查找
public class BinarySearch { // 二分查找的前提是所查找的数组已经有序。在查找过程中, // 每次取出中间的元素,与目标数值比较,若相等则直接返回; // 若不等,则根据排序规则在一侧中继续查找,直到这一侧元素仅剩一个时, // 若与目标元素相等,则直接返回;否则表明数组中没有待查找元素。 public static int bina原创 2016-10-13 00:25:25 · 518 阅读 · 0 评论