假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log... ...
分类:
编程语言 时间:
2020-06-26 16:51:41
阅读次数:
56
用倍增法求后缀数组、名次数组 sa为后缀数组、rank为名次数组 //二分查找法,返回最接近的位置和实际位置 function binary_find(id,hasSortArr){ let l=0,r=hasSortArr.length; let index=-1; while(r-l>0){ c ...
分类:
编程语言 时间:
2020-06-26 16:39:28
阅读次数:
53
1.介绍 选择排序算法属于内部排序算法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置达到排序的目的 时间复杂度:O(n^2) 双层for 2.思想 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值, ...
分类:
编程语言 时间:
2020-06-26 16:30:07
阅读次数:
127
1 //链式链表c语言版 2 3 typedef struct Node //链式链表定义 4 { 5 struct Node* next; 6 int data; 7 }ListLink; 8 9 ListLink* ListInit()//链式链表初始化 10 { 11 ListLink* he ...
分类:
其他好文 时间:
2020-06-26 16:20:17
阅读次数:
41
自从2019年11月我们出版了《千金良方--MySQL 性能优化金字塔法则》一书之后,持续不断有人来询问我MySQL 4 个系统字典库相关的问题,因为篇幅原因,书中并没有完整收录4个字典库相关的内容。我也一度想直接将近28W字(word计数,非排版字数)的文档转换为PDF直接向外公布算了。 但想来想 ...
分类:
数据库 时间:
2020-06-26 14:49:13
阅读次数:
77
数组中元素的反转,插入,及升序降序(冒泡) 数组的反转 1)数组的反转: 即对应元素的对调。 2)数组反转所需要的索引值(下标): 遍历输出数组中数据只需一个下标, 而数组的反转则需要两个下标。 int min=0,max=length-1; 3)对应元素怎么进行对调: 需要借助第三变量 int t ...
分类:
编程语言 时间:
2020-06-26 14:46:47
阅读次数:
52
// 数组倒排 let numArray = [3, 6, 2, 4, 1, 5]; function reverse(array) { let result= []; for(var i = array.length-1; i>= 0; i--) { result.push(array[i]); ...
分类:
编程语言 时间:
2020-06-26 14:29:03
阅读次数:
62
1 private void resize() { 2 3 int[] arrayNew = new int[array.length*2] 4 //把以前的数组复制到新的数组 5 System.arraycopy(array,0,arrayNew,0,array.length); 6 array ...
分类:
其他好文 时间:
2020-06-26 12:58:32
阅读次数:
58
剑指 Offer 66. 构建乘积数组 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 示例: 输入: [1,2,3,4,5] 输出: [120,60 ...
分类:
编程语言 时间:
2020-06-26 12:51:55
阅读次数:
60
1.目的 在主串中快速,快速,快速地找到目标串 2.求解next数组 void getNext(StrNonfix substr,int next[]){ int j=1,t=0; next[1]=0; while(j<substr.length){ if(t==0||substr.ch[j] == ...
分类:
编程语言 时间:
2020-06-26 12:45:09
阅读次数:
116