冒泡排序: 思路: 1)比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个 2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 3)针对所有的元素重复以上的步骤,除了最后一个 时间复杂度为(O(n^2))选择排序: 思路: 1)在未排序序列中找到最小(大)元素,存放到排序序列 ...
分类:
编程语言 时间:
2019-11-12 19:57:04
阅读次数:
65
在刷pat的 "1073 多选题常见计分法" 题目时,发现如果需要判断每一个学生对应每道题的多选题是否错选,漏选,以及选对是比较麻烦的一件事,因为这涉及到两个集合的判断,判断一个集合是否是另一个集合的子集(即漏选,得一半的分),或者说两个集合是否完全相等(即题目得满分)。 刚开始通过set容器来保存 ...
分类:
编程语言 时间:
2019-11-09 17:29:57
阅读次数:
66
//折半查找(二分法)public void arrayHalfQuery() { //定义一个数组,类型为int整型数据类型 int[] num = {1,3,4,7,9,10,12,15,17,19,21,22,25,26,28,29,30}; //定义一个要查找的key值 int key = ...
分类:
编程语言 时间:
2019-11-09 17:20:50
阅读次数:
81
1.c2d()函数的用法 c2d()函数的作用是将s域的表达式转化成z域的表达式,s=0对应z=1。 c2d()函数转化的方法有多种: ①zoh, 零阶保持器法,又称阶跃响应不变法; ②foh ,一阶保持器法 ③tustin ,双线性变换法 ④ imp, 脉冲响应不变法。 根据不同的场合,使用不同的 ...
分类:
其他好文 时间:
2019-11-08 21:05:30
阅读次数:
121
在旋转有序数组中搜索二。这题跟[LeetCode] 33. Search in Rotated Sorted Array求的一样,多一个条件是input里面有重复数字。依然是用二分法做,但是worst case很可能会到O(n);而且其中还会多一个case的判断,就是nums[mid]和nums[s ...
分类:
其他好文 时间:
2019-11-05 01:18:45
阅读次数:
85
求数组的局部峰值。给一个数组,数组满足条件nums[i] ≠ nums[i+1],求数组峰值的下标。例子 Example 1: Example 2: 思路是用二分法,因为题目要求时间复杂度是log级别。 时间O(logn) 空间O(1) ...
分类:
其他好文 时间:
2019-11-04 13:51:26
阅读次数:
77
二叉查找树是将一组无序的数据构建成一颗有序数据的树,其设计思想与二分法类似。很好的提高了海量数据查找效率,使得由从头遍历到尾的方式转为二分查找的方式,时间复杂度从O(n)降低为O(log(n))。 ...
分类:
其他好文 时间:
2019-11-03 23:56:19
阅读次数:
137
Oct 28,2019 ~ Nov 3,2019 Algorithm 本周的学习的算法是二分法。二分法可以用作查找即二分查找,也可以用作求解一个非负数的平方根等。下面主要以二分查找为例。 为了后续描述方便理解,先作出如下定义: k:要查找的数字 L:待查找的有序序列 left:查找区间的左边界 ri ...
分类:
其他好文 时间:
2019-11-03 23:42:27
阅读次数:
87
从小工到专家这本书,很细致的讲了编程中的问题。通过这次,我学到了消除bug可以用老式二分法。文本操纵有数据库维护、Java属性、测试数据生成、c与object Pascal的接口、生成wab文档等。 被动代码生成器减少了敲键的次数,用途由创建新的源文件、在编程语言中进行一次性转换、生成查找表及其他在 ...
分类:
其他好文 时间:
2019-10-31 14:56:42
阅读次数:
90
这也是一个通过二分法调用API猜数字大小的题目。注意判断的边界是从1到N。这题没有提供JavaScript的API所以我就直接上Java的代码了。 时间O(logn) 空间O(1) ...
分类:
其他好文 时间:
2019-10-31 00:57:38
阅读次数:
94