2019年8月23日

排序算法之基数排序

摘要: 基本思想:BinSort想法非常简单,首先创建数组A[MaxValue];然后将每个数放到相应的位置上(例如17放在下标17的数组位置);最后遍历数组,即为排序后的结果。 过程: 问题: 当序列中存在较大值时,BinSort 的排序方法会浪费大量的空间开销。 基本思想: 基数排序是在BinSort的 阅读全文

posted @ 2019-08-23 13:03 时间刺客mht 阅读(246) 评论(0) 推荐(0)

2019年8月22日

排序算法之归并排序

摘要: 基本思想: 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。 首先考虑下如何将2个有序数列合并。这个非常简单,只要从比较2个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 解 阅读全文

posted @ 2019-08-22 14:42 时间刺客mht 阅读(349) 评论(0) 推荐(0)

2019年8月20日

排序算法之快速排序

摘要: 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想 分治法也确实实用 虽然快速排序称为分治法,但分治法这三个字显然无法很好的概括快速排序的全部步骤。因此我的对快速排序作了进一步的说明:挖坑填数+分治法: 基本思想:(分治) 1.先从数列中取出一个 阅读全文

posted @ 2019-08-20 13:54 时间刺客mht 阅读(421) 评论(0) 推荐(0)

2019年8月19日

排序算法之希尔排序

摘要: 基本思想:在要排序的一组数中,根据某一增量分为若干子序列,并对子序列分别进行插入排序。然后逐渐将增量减小,并重复上述过程。直至增量为1,此时数据序列基本有序,最后进行插入排序。 过程: java代码: 阅读全文

posted @ 2019-08-19 19:41 时间刺客mht 阅读(256) 评论(0) 推荐(0)

排序算法之插入排序(直接插入方式)

摘要: 插入排序基本思想: 插入排序,就是把一组乱序的数据,依次拿出一个,放入到一组已经排好序的数据中的正确的位置。又可以分为:①直接插入排序、②折半插入排序、③二路插入排序、④表插入排序、⑤希尔排序 一、直接插入排序 1.基本思想:相对比较简单的一种排序方法,就是按照概念一步一步的操作,可以使用for循环 阅读全文

posted @ 2019-08-19 12:40 时间刺客mht 阅读(769) 评论(0) 推荐(0)

2019年8月18日

排序算法之选择排序

摘要: 基本思想:在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。 平均时间复杂度:O(n2) 过程: 代码: public int[] selectSor 阅读全文

posted @ 2019-08-18 13:41 时间刺客mht 阅读(248) 评论(0) 推荐(0)

冒泡排序算法之优化

摘要: 针对问题:数据的顺序排好之后,冒泡算法仍然会继续进行下一轮的比较,直到arr.length-1次,后面的比较没有意义的。 方案:设置标志位flag,如果发生了交换flag设置为true;如果没有交换就设置为false。这样当一轮比较结束后如果flag仍为false,即:这一轮没有发生交换,说明数据的 阅读全文

posted @ 2019-08-18 00:33 时间刺客mht 阅读(211) 评论(0) 推荐(0)

2019年8月8日

排序算法之冒泡排序

摘要: 考点1:交换两个数,不借助第三个变量,使用异或操作,异或规则:0^0=0; 0^1=1; 1^0=1; 1^1=0; 考点2:冒泡排序的原理:从左往右两两比较大小,小的放左边,每次循环找出当前趟的最大值,再比较这个数之前的序列,一直循环到只有两个数字,比较完这两个数的大小之后,冒泡排序结束; 上代码 阅读全文

posted @ 2019-08-08 10:13 时间刺客mht 阅读(485) 评论(0) 推荐(0)

2019年8月5日

逻辑运算符:与,或,非,异或

摘要: 1.与运算(&) 进行运算的两个数据,按二进制位进行“与”运算。 规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即: 两位同时为“1”,结果才为“1”,否则为0 2.或运算(|) 进行运算的两个数据,按二进制位进行“或”运算。 运算规则:0|0=0; 0|1=1; 1|0=1; 1| 阅读全文

posted @ 2019-08-05 22:22 时间刺客mht 阅读(87105) 评论(2) 推荐(1)

兔子个数问题(斐波那契数列)

摘要: 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 1.递归解法: 2.非递归解法 递归方法大家都会,所以面试时一般考察非递归方式求解。 阅读全文

posted @ 2019-08-05 22:03 时间刺客mht 阅读(1215) 评论(0) 推荐(0)

导航