码迷,mamicode.com
首页 >  
搜索关键字:部分有序    ( 30个结果
数组--插入排序法
1、什么是插入排序: 将待排序数列分为两部分:有序数据和待插入元素。 插入排序的基本操作是将一个待插入数据插入到一组有序数据中,把将要插入的数与各数据进行比较,当找到第一个比插入数大的元素时,该元素之前为插入位置。
分类:编程语言   时间:2015-12-06 16:04:28    阅读次数:140
二分查找法
二分查找算法,是一种在有序数组中查找某一特定元素的搜索算法。注意两点:(1)有序:查找之前元素必须是有序的,可以是数字值有序,也可以是字典序。为什么必须有序呢?如果部分有序或循环有序可以吗?(2)数组:所有逻辑相邻的元素在物理存储上也是相邻的,确保可以随机存取。算法思想:搜素过程从数组的中间元素开始...
分类:其他好文   时间:2015-08-09 12:22:54    阅读次数:207
面试题08_旋转数组的最小数字——剑指offer系列
题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如:数组{3, 4, 5, 1 , 2} 是 数组{1,2,3,4,5}的一个旋转,该数组最小的数是1. 我们要做的就是找到这个旋转后数组的最小数。 解题思路: 思路1:直接遍历数组,找到最小的数,简单粗暴,时间复杂度O(n),空间复杂度O(...
分类:编程语言   时间:2015-07-25 12:27:56    阅读次数:131
二分查找及变形
二分查找是在完全有序数组(或部分有序)中对某一元素进行快速查找的算法。时间复杂度为O(logn)。实现方式有递归和非递归。非递归实现 public int binarySearch(int[] nums, int key) { if (nums == null || nums.length == ....
分类:其他好文   时间:2015-06-28 12:30:48    阅读次数:96
算法-插入排序
插入排序的基本逻辑就是将最小的元素移动到左边,左边的数组是有序的,右边的数组基本上不需要动,插入排序运行的时间很大情况取决于输入元素的初始顺序,对于一个很大的且其中的元素已经有序的数组进行排序会比随机顺序的数组或者逆序的数组快很多。插入排序对部分有序的数组是非常有效的,数组中的每个元素都离最终的位置...
分类:编程语言   时间:2015-06-17 09:26:43    阅读次数:135
leetcode_Search in Rotated Sorted Array II
本题木的特点是数组初始有序,然后循环移位了。 由于是循环移位,所以数组前一半或后一半至少有一半元素是有序的,而找到其中一半有序的元素正式本题的题眼。 1.初始start=0,end=len-1 2.mid=(start+end)/2;如果arr[mid]==target,找到元素 3.如果arr[start]<arr[mid],则前半部分有序,如果arr[start]<=targetarr[mid],则targe...
分类:其他好文   时间:2015-05-16 10:31:37    阅读次数:141
链表的排序 时间复杂度O(nlogn)
思路:用归并排序。对一个链表采用递归进行二等分,直到每个部分有序,然后对其进行合并。其实就是两步,先分解,然后合并有序链表。代码://对链表采用递归排序class Solution {public: ListNode* sortList(ListNode* head){ if(h...
分类:编程语言   时间:2015-03-31 00:23:10    阅读次数:224
Redis研究(九)—有序集合类型 2
上一篇已经讲了一部分有序集合类型的命令了 http://blog.csdn.net/wtyvhreal/article/details/42804571 三、命令拾遗 1.获得集合中元素的数量 zcard key 2.获得指定分数范围内的元素个数 zcount key min max 3.删除一个或者多个元素 zrem key member 返回值是成功删除的元素...
分类:其他好文   时间:2015-01-17 18:11:44    阅读次数:209
Java 实现插入排序
插入排序: 稳定的排序算法 比较的元素从前两个开始,然后前三个,直至N 比较的方向为从后向前比较, 满足比较条件则:把前一个赋值给后一个, 一轮比较下来,把右边界值赋给左边第1个不满足条件的位置上 比较的次数为1,2,3...N-1, 总共(N^2-N);赋值的次数跟比较次数差不多,可能略大于, 但是单向赋值比交换(双向赋值)肯定要快一点 效率:虽然还是O(N^2), 但对于部分有序的数...
分类:编程语言   时间:2014-10-16 21:38:53    阅读次数:191
[LeetCode] Search in Rotated Sorted Array [35]
旋转数组中的查找。[1, 2, 3, 4, 5, 6]的一个旋转数组为[4, 5, 6, 1, 2, 3]。在旋转数组中寻找一个数。 最直接的方法,一次遍历,时间复杂度O(n)。但是既然是一个部分有序的数组,那么对于有序的部分我们可以想方法用二分查找。这个效率可以提高。 代码: .......
分类:其他好文   时间:2014-06-15 17:33:21    阅读次数:195
30条   上一页 1 2 3
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!