sort()方法 var arr = [1,22,223,33,55]; console.log(arr.sort()) //打印结果:[1,22,223,33,55] // 升序 console.log(arr.sort(function(x,y){ return x-y; })) //打印结果: ...
分类:
编程语言 时间:
2017-07-11 10:19:27
阅读次数:
219
题目:给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1] 思路:如果中点等于target就要分为两部分来查找,中点的左右部分分别来找第一个和最后一个target值;左边,只考虑mid值小于和等于target值;右边只考虑 ...
分类:
编程语言 时间:
2017-07-09 18:19:17
阅读次数:
257
数字在排序数组中出现的次数 数组中只出现一次的数字 数组中出现次数超过一半的数字 连续子数组的最大和 从1-n中1出现的次数 二维数组中的查找 数组去重 排序算法总结 如何评价算法的优劣 1.冒泡排序 基本原理:重复的走访要排序的数组,每次比较两个值,如果前者大于后者则交换两者的位置。这样最大的元素 ...
分类:
编程语言 时间:
2017-07-04 22:25:19
阅读次数:
206
1.数组和链表 数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快 ...
分类:
编程语言 时间:
2017-06-28 02:19:32
阅读次数:
243
插入排序(Insertion Sort):玩扑克牌时,每抓一张牌,就就行一次排序。手中已有的牌是已经排序的,只要对新抓的牌key排序。在排序遍历的过程中,当遇到比key小的牌(按照从小到大排序),则结束本次排序。时间复杂度是O(n2). 伪代码:其中,n 是要排序数组的个数,Arry[]要排序的数组 ...
分类:
编程语言 时间:
2017-06-27 22:21:44
阅读次数:
166
1.数组的排序 int[] arr=new int[]{3,2,6,4}; Arrays.sort(arr); 2.单列集合的排序 List<Integer> list=new ArrayList<Integer>(); Collections.sort(list); HashSet<Integer ...
分类:
编程语言 时间:
2017-06-27 20:04:10
阅读次数:
133
看标题。你可能会疑惑:咦?你这家伙。怎么不解说完整的快排,仅仅讲一部分快排……-。- 哎,冤枉。“部分快排”是算法的名字。实际上本文相当具体呢。本文差点儿与普通快排无异。看懂了本文,你对普通的快排也会有更深的认识了。 高速排序算法(qsort)的原理我们大都应该了解。本文介绍的是部分高速排序算法。事 ...
分类:
编程语言 时间:
2017-06-27 10:06:23
阅读次数:
377
// // 基本数据结构算法 // //二分查找(数组里查找某个元素) //顺序查找(数组里查找某个元素) //线性表的删除(数组中实现) //冒泡排序(数组排序) 思路:?每次循环排列出一个最大的数 (一) (二) //快速排序(数组排序) 思路:先对数组进行分割, 把大的元素数值放到一个临时数组 ...
分类:
编程语言 时间:
2017-06-26 12:38:26
阅读次数:
196
剑指Offer之和为S的两个数字 剑指Offer之和为S的连续正数序列 扩展(1):输入一个数组,推断这个数组中是不是存在三个数字i, j, k,满足i+j+k等于0。 扩展(2):假设输入的数组是没有排序的,但知道里面数字的范围,其它条件不变,怎样在O(n)时间里找到这两个数字?这个的基本思路是先 ...
分类:
编程语言 时间:
2017-06-24 12:36:49
阅读次数:
142
归并排序里运用到算法里很重要的一个思想——分治法:将原问题分解为几个规模较小但类似于原问题的子问题——《算法导论》。在每一层递归中都有3个步骤: 1.分解问题 2.解决问题 3.合并问题的解 举例待排序数组:{6, 5, 3, 1, 7, 2, 4},将它原始序列做分解。 可以经过不断的递归分解可以 ...
分类:
编程语言 时间:
2017-06-24 09:59:22
阅读次数:
153