```` / 选择排序 算法思路: 1.遍历数列,找到最小(或最小)元素,然后将其放到数列首位,作为已排序部分 2.对剩下待排序数列,重复以上第一步,找到最小(或最小)元素放到已排序的部分后面,直到无待排序部分 算法复杂度:O(n2) 稳定性:不稳定 @author lxy / public cla ...
分类:
编程语言 时间:
2018-08-01 23:58:52
阅读次数:
300
```` / 插入排序 算法思路: 1.选取数列第一个数作为已排序,数列的其他部分作为待排部分 2.每次取待排部分的第一个元素待插入数,然后从已排序部分末尾开始遍历,直到找到比待插入数小(或者打)的数 3.将这个小的数的位置后的数往后移动,空出一位,再将待插入数插入 4.重复以上步骤,直到无待排部分 ...
分类:
编程语言 时间:
2018-08-01 23:53:24
阅读次数:
185
思路: 嘻嘻,请读者自己手动模拟。博主这里不知道怎么用语言说。 拓展: 算法思路适用于 (1)每层的结点个数 (2)树的最大宽度 (3)节点位于某一层 int height(BiTree T){ if(T==null) return 0; int front= 1, rear= 1;//front ...
分类:
编程语言 时间:
2018-07-23 15:51:54
阅读次数:
160
英勇青铜 算法思路 两个数组:待排序数组 和有序数组 从待排序数组中取一个数 依次和有序数组中每个数比较 小于元素 时 先将位置 及之后的元素向后移动一位 再插入到位置 上 一直都不小于, 则直接插入到 上 注意 和`orderArray[j]`比较时: 从左向右,条件 如果加上等于,可以少比较一次 ...
分类:
编程语言 时间:
2018-07-20 16:53:12
阅读次数:
133
算法思路 选择一个数字 为关键字 目的就是为了确定关键字所在最终结果中的位置 通过遍历分区,左分区小于关键字,右分区大于关键字,关键字位置确定 注意 递归时一直都是操作的 数组,分区是 的一部分,没有将分区作为一个新数组。 分区是用 和`high index`来计算的 时间复杂度 快速排序是不稳定的 ...
分类:
编程语言 时间:
2018-07-20 16:42:02
阅读次数:
148
1. 求字符串的最长重复子串 例如:aaaaaaaaabbbbcccaaassscvvv这里面的最长重复子串为aaaaaaaaa 算法思路:算法时间复杂度(O(n)) 1. 将这一个字符串先转成char数组; 2. 将这一char数组进行遍历 3. 比较char数组中第i-1个与第i个的字符是否相等 ...
分类:
编程语言 时间:
2018-07-09 01:10:22
阅读次数:
202
1、算法思路 归并排序采用的也是分而治之的方法。归并排序的思路是:利用递归不断将数组分成两半,直到数组只有一个元素时递归结束。返回时对左右两边数组进行排序,直到回到原来的数组为止。 2、代码实现 (注意:这里 i,j 要分开赋值,不能 i,j = 0!) 3、参考 1.图解归并排序 2.归并排序py ...
分类:
编程语言 时间:
2018-07-06 18:32:12
阅读次数:
164
1、算法思路 插入排序就像是整理扑克牌一样。试想你左手拿了几张排好序的扑克牌,右手有几张未排序的排。现在右手从左到右起的第一张牌是7,你该怎样放去左手排好序的牌中?先把7拿出来,然后跟右手的牌从右往左一一比较,最后把7插在比7小与比7大的牌中间。这个就是插入排序的原理,一开始把数组中第一个数当成已排 ...
分类:
编程语言 时间:
2018-07-06 17:54:42
阅读次数:
153
线性表顺序存储结构的优缺点: 优点:1、无须为表示表中元素之间的逻辑关系而邢家额外的存储空间 2、可以快速地存取表中任一位置的元素 缺点 :1、插入和删除操作需要移动大量元素 2、当线性表长度变化较大时,难以确定存储空间的容量 3、造成存储空间的“碎片” 线性表的链式存储结构: 为了表示每个数据元素 ...
分类:
其他好文 时间:
2018-06-24 13:00:09
阅读次数:
144