CompilerTech

导航

文章分类 -  网络学习-算法导论

从互联网上学习算法导论
[转载]折半查找
摘要:折半查找 http://learn.akae.cn/media/ch11s06.html如果不是从一组随机的序列里查找,而是从一组排好序的序列里找出某个元素的位置,则可以有更快的算法:例11.4.折半查找#include <stdio.h>#define LEN 8int a[LEN] = { 1, 2, 2, 2, 5, 6, 8, 9 };int binarysearch(int number){ int mid, start = 0, end = LEN - 1; while (start <= end) { mid = (start + end) / 2; if (a 阅读全文

posted @ 2011-05-25 20:54 compilerTech 阅读(622) 评论(0) 推荐(1) 编辑

[转载]归并排序
摘要:归并排序http://learn.akae.cn/media/ch11s04.html插入排序算法采取增量式(Incremental)的策略解决问题,每次添一个元素到已排序的子序列中,逐渐将整个数组排序完毕,它的时间复杂度是O(n2)。下面介绍另一种典型的排序算法--归并排序,它采取分而治之(Divide-and-Conquer)的策略,时间复杂度是Θ(nlgn)。归并排序的步骤如下:Divide: 把长度为n的输入序列分成两个长度为n/2的子序列。Conquer: 对这两个子序列分别采用归并排序。Combine: 将两个排序好的子序列合并成一个最终的排序序列。在描述归并排序的步骤时又调用了归 阅读全文

posted @ 2011-05-25 20:49 compilerTech 阅读(490) 评论(0) 推荐(0) 编辑

[转载]算法的时间复杂度分析
摘要:算法的时间复杂度分析 http://learn.akae.cn/media/ch11s03.html解决同一个问题可以有很多种算法,比较评价算法的好坏,一个重要的标准就是算法的时间复杂度。现在研究一下插入排序算法的执行时间,按照习惯,输入长度LEN以下用n表示。设循环中各条语句的执行时间分别是c1、c2、c3、c4、c5这样五个常数[23]:void insertion_sort(void) 执行时间{ int i, j, key; for (j = 1; j < LEN; j++) { key = a[j]; c1 i = j - 1; c2 while (i >= 0 & 阅读全文

posted @ 2011-05-25 20:27 compilerTech 阅读(582) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示