
排序
小马哥MAX
刷题记录BLOG
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快速排序完美优化版【JAVA】
相比较原始快排,这里优化了两个地方: 优化1:为防止在近乎有序的数组,partition分割极度不平衡,可将v元素随机化选取 优化2:递归到一定程度可使用插入排序 另外为了方便大家理解partition过程,附图一张: public void quickSort(int[] nums){ if(nums == null || nums.length <=0) ...原创 2018-08-31 21:13:19 · 1897 阅读 · 2 评论 -
归并排序(最终版)
动画演示 归并过程Merge 设置一个辅助空间aux(图下二数组) 代码优化,merge操作只在arr[mid] > arr[mid+1]时进行,否则说明两部分是有序的,这样当数组接近有序的情况,归并次数减少,效率提高。 void mergeSort(int[] arr){ mergeSort(arr, 0, arr.length-1); ...原创 2019-04-02 11:26:07 · 244 阅读 · 1 评论 -
常用O(n^2)排序算法总结【JAVA版】
1、插入排序(初版) public void insertSort(int[] nums){ if(nums == null || nums.length<=0) return; for(int i=1 ; i<nums.length ; i++){ for(int j=i ; j>0 ; j--){ ...原创 2018-08-30 21:47:14 · 320 阅读 · 1 评论 -
【两次过】Lintcode 148. 颜色分类
给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。 我们可以使用整数 0,1 和 2 分别代表红,白,蓝。 样例 给你数组[1, 0, 1, 2], 需要将该数组原地排序为[0, 1, 1, 2]。 挑战 一个相当直接的解决方案是使用计数排序扫描2遍的算法。 首先,迭代数组计算 0,1,2 出现的次数,然后依次...原创 2018-07-01 22:18:44 · 257 阅读 · 0 评论 -
【简单】Lintcode 39:恢复旋转排序数组
Given arotatedsorted array, recover it to sorted array in-place. Clarification What is rotated array? For example, the orginal array is [1,2,3,4], The rotated array of it can be原创 2018-01-27 15:50:27 · 223 阅读 · 0 评论