算法
wxc_Huang
这个作者很懒,什么都没留下…
展开
-
常见算法
目录洗牌算法 洗牌算法 Java实现数组洗牌算法 算法实现思路如下: 按照下标从大到小的顺序遍历数组,记下标为i 遍历时生成范围[0, i]的随机数j,交换下标i与下标j的数组元素 public static void shuffle(int[] nums) { Random rnd = new Random(); for (int i = nums.length - 1; i > 0; i--) { int j = rnd.nextInt(i + 1);原创 2021-03-31 16:01:21 · 59 阅读 · 0 评论 -
排序算法
目录算法复杂度冒泡排序(Bubble Sort)优化快速排序(Quick Sort)插入排序(Insertion Sort)希尔排序(Shell Sort)选择排序(Selection Sort)堆排序(Heap Sort)归并排序(Merge Sort)计数排序(Counting Sort)桶排序(Bucket Sort)基数排序(RadixSort) 参考链接 十大经典排序算法(动图演示) 超详细十大经典排序算法总结(java代码) 十大经典排序算法 排序算法总结 比较类排序 通过比较来决定元素间的相原创 2020-12-26 22:39:38 · 54 阅读 · 0 评论 -
二分法
目录mid 取值边界问题左闭右闭左闭右开循环条件left, right的比较 参考连接 二分查找、二分边界查找算法的模板代码总结 二分法可以达到 O(log n)的时间复杂度 一般而言,当一个题目出现以下特性时,你就应该立即联想到它可能需要使用二分查找: 待查找的数组 有序或者部分有序 要求时间复杂度低于O(n),或者直接要求时间复杂度为O(log n) mid 取值 可以保证两数相加除2永远不会发生 越界问题 还可以保证在查找区间 长度为偶数 时,二分过程中其mid始终指向中间偏左的元素,向下取整原创 2020-12-16 09:42:50 · 111 阅读 · 0 评论