目的:跟编程纠缠了这么久,今天我想跟排序算法做个了断。 第一种:归并排序 思想: 1) 两个已经排好序的序列,如果要融合那复杂度是多少呢? 很简单 O(n)。例子: 1 3 5 7 9 和 2 4 6 8 10 12原理很简单: 敌不动我不动,谁大谁动(假设按照从大到小的顺序排序的话) 2) 归并排 ...
分类:
编程语言 时间:
2020-07-02 21:49:24
阅读次数:
60
704. 二分查找 Difficulty: 简单 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums = [-1,0,3,5,9,12], targe ...
分类:
其他好文 时间:
2020-07-02 18:22:27
阅读次数:
47
题目描述: 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 今日学习: 1.复习reduce 2.归并排序 题解: 1.直接合成一个数组然后sort 2.二分查找 3.归并排序 //令人羞耻的 ...
分类:
其他好文 时间:
2020-07-02 13:36:03
阅读次数:
47
动态规划 O(NlogN)结构 在插入排序时,我们倘若用二分查找的形式去寻找插入位置,看似很快,但是却要移动后面的位置,使得这个二分得不偿失 但,如果只是替换某个值呢? 在动态规划的很多题目里面,我们正是要维护这样的一个决策单调序列, 进行更新采取的方案正是替换 注意,这样处理并不能记录opt答案对 ...
分类:
其他好文 时间:
2020-07-02 10:47:23
阅读次数:
54
//比较字符基类大小 相同返回0,str1>str2 返回1,str1<str2 返回-1, function str_compare(str1,str2){ let index=0; let dis=0; while (dis 0&&index<str1.length){ if(str1.char ...
分类:
编程语言 时间:
2020-07-01 20:32:24
阅读次数:
61
#每次排除一半的数据,效率高;局限性:必须是有序序列 应用: lst = [11,22,33,44,55,66,77,88,99,123,234,345,456,567,678,789,1111] def binary_search(left, right, n): middle = (left + ...
分类:
编程语言 时间:
2020-06-30 00:47:14
阅读次数:
75
1. 二分法 二分查找也属于顺序表查找范围,二分查找也叫做折半查找,二分查找的时间效率为(logN) 二分查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功,如果给定值小于中间值,则查找数组的前半段,否则查找数组的后半段。 二分查找只适用于有序数组或者链 ...
分类:
编程语言 时间:
2020-06-29 23:01:59
阅读次数:
100
这个月每日一题有很多没做的,主要重心放在并查集和二分查找的题。 ...
分类:
其他好文 时间:
2020-06-29 16:57:53
阅读次数:
49
二分初学者一定要认真熟练将以下模版练习并将逻辑理解清楚 #include<bits/stdc++.h> using namespace std; int a[10]={1,3,5,7,9,9,9,11,13,15}; //二分查找 返回>=p的第一数下标,相当于jlower_bound() int ...
分类:
其他好文 时间:
2020-06-29 09:14:15
阅读次数:
44
一.查找 1.顺序查找:简单粗暴,将待查找数据和表中数据一一对比。 2.二分查找:也称折半查找,要求顺序表或者数组必须有序,查找效率相对较高。 3.分块查找:要求块与块之间有序,块内部不需要有序。查找效率高,但对表要求较高。 二.树的查找 1.二叉查找树:它或者是一棵空树,或者是具有下列性质的二叉树 ...
分类:
其他好文 时间:
2020-06-28 22:36:37
阅读次数:
64