叽叽喳喳,嘻嘻哈哈

导航

2016年12月2日 #

查找 —— 二分查找[递归+非递归]

摘要: 二分查找 二分查找是对一组有序序列进行查找。根据要查找的k和序列中间元素比较,动态的移动查找范围。以对折的方式缩小查找范围。 递归方式: 非递归方式: 阅读全文

posted @ 2016-12-02 22:37 叽叽喳喳,嘻嘻哈哈 阅读(320) 评论(0) 推荐(0) 编辑

归并排序 —— 递归实现 + 非递归实现

摘要: 归并排序 归并排序说的简单一点就是把一个大的序列分成多个子序列,再别对各个子序列进行排序,等所有子序列都排序完成之后,再逐步从所有的子序列里面抽出最小的元素放回到大序列里面。直至所有元素都放回大序列,从而完成排序。 是采用分治法的典型案例。 本例是 二路归并。 一个大的序列 分成两个子序列分别进行排 阅读全文

posted @ 2016-12-02 20:36 叽叽喳喳,嘻嘻哈哈 阅读(691) 评论(0) 推荐(0) 编辑

选择排序 ——堆排序

摘要: 堆排序 在堆排序中,我们可以将顺序表看成一颗完全的二叉树 二叉树知识回顾: 从1开始对二叉树中的每个节点顺序编号 序列 : [ # , C, H, G, E, A, D, I, F, B, K ] 索引 1 2 3 4 5 6 7 8 9 10 所以编号为 i 的 左孩子节点编号为 2*i ; 右孩 阅读全文

posted @ 2016-12-02 10:37 叽叽喳喳,嘻嘻哈哈 阅读(758) 评论(3) 推荐(0) 编辑

2016年12月1日 #

选择排序——直接选择排序

摘要: 选择排序 每一趟从待排序的元素中,选出最小的元素,放到已经排好序的序列的后面直到全部元素排序完毕。在这个过程中,有序区逐步扩大,而无序区逐渐缩小。 直接选择排序 直接选择排序是将无序区内的最小元素追加到有序区的后面,从而扩大有序区的范围。而我们又是在原地排序,所有也就相当与交换无序区的第一个元素和无 阅读全文

posted @ 2016-12-01 16:25 叽叽喳喳,嘻嘻哈哈 阅读(1765) 评论(0) 推荐(0) 编辑

交换排序 —— 快速排序

摘要: 快速排序 快速排序是在等待排序的n个记录中随机取出一个元素作为基准,比基准小的元素放到基准左边,比基准大的放到基准的右边。 然后分别对基准两边的子序列进行上一步的操作。递归的进行,直到排序完成。 可以设置两个游标分别对序列左右两端的元素进行跟踪。以方便和基准比较大小进行移动。 如图所示,low 和 阅读全文

posted @ 2016-12-01 14:04 叽叽喳喳,嘻嘻哈哈 阅读(847) 评论(4) 推荐(1) 编辑

交换排序 —— 冒泡排序 + 改进

摘要: 冒泡排序 冒泡排序是通过无序区相邻两个元素之间进行比较和位置交换,达到排序的目的。 插入排序是设定序列的 1 到 n-1 元素为无序区,初始有序区就只有 0 这个元素,然后将无序区中的元素和有序区中的元素逐个进行比较插入。从而是不断扩大有序区的范围。减少无序区的范围直至排序完成。 而冒泡排序则视整个 阅读全文

posted @ 2016-12-01 12:21 叽叽喳喳,嘻嘻哈哈 阅读(640) 评论(0) 推荐(0) 编辑

插入排序 —— 希尔排序

摘要: 希尔排序 希尔排序也是插入排序的一种。又名缩小增量排序。它是对直接插入排序的一种改进。 直接插入排序是每次都和前面一个元素进行比较。其步长为 1。 希尔排序则不然,它得步长是动态变化的,或者说是由大到小变化的。希尔排序根据步长将整个序列分成n组。然后在各个子组内部分别进行元素的排序。接着缩小步长,相 阅读全文

posted @ 2016-12-01 11:06 叽叽喳喳,嘻嘻哈哈 阅读(274) 评论(0) 推荐(0) 编辑

2016年11月30日 #

插入排序 —— 直接插入排序 + 折半插入排序

摘要: 插入排序 直接插入排序 每次将一个待排序的记录,按其关键字大小插入到前面的已经排好的子表中的适当的位置。直到全部记录插入完成为止。 看图说话,如图所示: 一共有 N 个记录 ,放在 R 列表中 R[0,n-1] 在排序过程中的某一时刻,呈现了如果所示的场景。 其中: 浅绿色为 已经排好序的 部分 称 阅读全文

posted @ 2016-11-30 19:49 叽叽喳喳,嘻嘻哈哈 阅读(2457) 评论(0) 推荐(0) 编辑

二叉树 —— 按层遍历

摘要: 二叉树的遍历 二叉树的遍历分先序、中序、后序和层次遍历。实现方式分递归和非递归方式。 这里说说层次遍历。 层次遍历是逐层访问二叉树的每个节点。属于广度优先。常常使用队列的方式。 如图有以下一棵二叉树,它构建的队列形式为: 1、先把根节点 1 放入队列,然后弹出,看看它有没有左右孩子,如果有,按顺序将 阅读全文

posted @ 2016-11-30 15:37 叽叽喳喳,嘻嘻哈哈 阅读(720) 评论(0) 推荐(0) 编辑

2016年11月12日 #

KMP 算法

摘要: k 是一个集合的最大值 假如有一个匹配字符串 T,在 x 出匹配失败。那么从 T[0] 到 T[k-1] 取子字符串和从T[x-k] 到 T[x-1]取子字符串,如果相等,那么产生一个值放入集合中, 最后在集合中选取最大的就是 k值 如果下所示: 假如 匹配串 T = 'abaabcac' 在进行匹 阅读全文

posted @ 2016-11-12 20:20 叽叽喳喳,嘻嘻哈哈 阅读(199) 评论(0) 推荐(0) 编辑