Algorithm
奋斗的小巍
这个作者很懒,什么都没留下…
展开
-
Algorithm(一)荷兰国旗问题
一、经典题目 给定一个数组arr,和一个数num,请把小于等于num的数放在数 组的左边,大于num的数放在数组的右边。 要求额外空间复杂度O(1),时间复杂度O(N) 分析: 总体的思想就是小于num的数推着大于num的数向右走,如果当前数小于num,则直接跳下一个数,同时小于的范围扩大一位,如果是大于则是直接跳下一位,知道遇见小于num的数,在和小于范围的下一个数交换 代码: ...原创 2018-12-02 19:13:21 · 310 阅读 · 0 评论 -
快速排序(一)
一、分析原理 经典快排的思想:首先把最后一个数据X值作为划分值,然后在分开的在通过最后一个数划分。 wo 我们可以改进一个快速排序,通过荷兰国旗的问题,对快速排序做一个加速的过程,因为,经典快速排序每次搞定一个数的位置,如上图,每次之搞定一个数X,我们可以在中间加一个相等的数,类似于荷兰国旗问题 import java.util.Arrays; public class Quick...原创 2018-12-02 23:54:07 · 155 阅读 · 0 评论 -
堆排序(一)
一、介绍 堆结构: 1.就是完全二叉树,要吗是一个满二叉树,最后一个层都是叶节点。 满二叉树:最后一层都是叶节点,并都补齐的 2.如果不是满二叉树,如果最后一层是从左到右依次排满的话,不会跳过的就是完全二叉树。 完全二叉树如下: 完全二叉树的数组表示: 一个节点的左孩子:2*i+1 一个节点的有孩...原创 2018-12-04 00:43:27 · 675 阅读 · 0 评论 -
各种排序算法的稳定性~~~
一.稳定性 稳定性: 比如 2 3 2 4 4 排序后 2 2 3 4 4 就是排序之后我们如何才能保证两个2前后的关系,在原始序列中是不变的,这个就是稳定性 如果不会打乱,就是具有稳定性 反之就是不稳定的 冒泡排序: 时间复杂度:n平方 不稳定,但是可以做到稳定性 ,例如下面的列子 让相同的值,第二继续往...原创 2019-01-08 12:03:13 · 618 阅读 · 0 评论