题目概述 题目:力扣:35.搜索插入位置 难易:简单 内容: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3... ...
分类:
其他好文 时间:
2019-12-15 20:15:17
阅读次数:
77
题目: 统计一个数字在排序数组中出现的次数。 分析: 给定一个已经排好序的数组,统计一个数字在数组中出现的次数。 那么最先想到的可以遍历数组统计出现的次数,不过题目给了排序数组,那么一定是利用了排序这个性质来缩减时间复杂度的。 因为如果所给的数字在数组中出现,那么这个数字在数组中一定是连续的,那么可 ...
分类:
编程语言 时间:
2019-12-11 00:32:31
阅读次数:
91
1. 希尔排序 算法核心思想 希尔排序本质也是一种插入排序,但是是根据简单插入排序进行优化后的一种更加高效的版本,别称缩小增量排序。希尔排序的核心思想是将排序数组按照步长进行分组,然后对分组的元素进行直接插入排序,循环缩小分组步长,最后当步长长度为1的时候排序结束。希尔排序在数组中采用的是跳跃式分组 ...
分类:
编程语言 时间:
2019-12-09 21:44:10
阅读次数:
97
1. 快速排序 算法核心思想 取待排序数组第一个数作为参照数,建立left和right数组left存储小于参照数的数组集合,right存储大于参照数的数组集合,然后分别对left和right进行递归调用排序。具体算法逻辑如下: 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右 ...
分类:
编程语言 时间:
2019-12-09 21:41:59
阅读次数:
92
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 提示: 1 <= A. ...
分类:
编程语言 时间:
2019-12-04 22:04:52
阅读次数:
132
【题目描述】 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 ...
分类:
编程语言 时间:
2019-12-03 14:27:20
阅读次数:
78
冒泡排序和选择排序都是数组排序。 数组排序方法:sort()排序,字符的排序,逐位比较 arr.sort(function(a,b){ return a-b; }); console.log(arr); a-b从小到大数值排序,b-a从大到小排序。 冒泡排序:两两比较。 案例:arr[5,7,4,8 ...
分类:
编程语言 时间:
2019-11-30 13:28:53
阅读次数:
68
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5输出: 2示例 2: 输入: [1,3,5,6], 2输出: 1示例 3: 输入: [1,3,5,6], ...
分类:
其他好文 时间:
2019-11-26 17:40:29
阅读次数:
60
堆排序就是借助二叉堆进行排序,不了解二叉堆的可以先看这里。本文以升序排序为例,首先将待排序数组放置在最小堆中,此时堆顶一定是数组中最小的元素,然后删除堆顶元素,此时调整后的最小堆顶会是第二小的元素,从而实现排序。 时间复杂度:O(nlogn) 代码: public static void main( ...
分类:
编程语言 时间:
2019-11-25 00:15:22
阅读次数:
101