
数据结构与算法
文章平均质量分 82
lishushan
这个作者很懒,什么都没留下…
展开
-
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如...原创 2010-01-09 20:30:16 · 105 阅读 · 0 评论 -
大O表示法是什么?
目录一,算法的目标二,算法的执行时间三,时间复杂度和大O表示法四,几个例子五,拓展 称一个函数g(n)是O(f(n)),当且仅当存在常数c>0和n0>=0,对一切n>n0均有|g(n)|<=c|f(n)|成立,也称函数g(n)以f(n)为界或者称g(n)囿于f(n)。记作g(n)=O(f(n))。 定义:如果...原创 2010-07-04 14:48:55 · 485 阅读 · 0 评论 -
自动状态机实现经典过河问题
一、实验题目 使用有限自动机编程解决如下问题:有一个人带着狼、羊和草来到河的左岸。左岸只有一条无人摆渡的船,这个人要从左岸过河到右岸。可是这条船最多只能装一个人和其他三者之一,否则便会沉没。如果没有人看管,狼会吃掉羊,或者羊吃掉草。问如何过河才能保证羊和草的安全?二、题目分析 W代表狼,G代表草,S代表羊,M代表人。初始状态”WSGM_”,结束状态”_WSGM...原创 2010-07-03 15:12:58 · 1012 阅读 · 0 评论 -
数据结构自学网站
http://student.zjzk.cn/course_ware/data_structure/web/main.htm原创 2010-12-13 00:37:10 · 125 阅读 · 0 评论 -
常用的排序算法(包括冒泡排序,选择排序,插入排序,希尔排序,快速排序)...
排序算法在程序中会用到很多,这里介绍几种常见的排序方法以及比较冒泡排序:对一个队列里的数据,挨个进行轮询和交换,每次轮询出一个当前最大或者最小的值放在队尾,然后继续下次轮询,轮询长度-1,就跟冒泡一样,所以称为冒泡排序,运算时间复杂度N平方选择排序:对一个队列里的数据,选出当前最大或者最小的值,然后将他与队首的数据交换,然后从第二个开始,进行相同的操作,运算时间复杂度N平方,但由于他不像冒...原创 2010-01-13 23:29:58 · 337 阅读 · 0 评论 -
几个简单常用的排序算法(面试会遇到)
1:quicksort 下面这个示意图很生动的演示出来快速排序的原理。C语言代码如下:#include <stdio.h>#include <stdlib.h>viod swap (int *key1, int *key2){int empty = *key1;*key1 = *key2;*key2 = empty;}int partition (int * a , int...原创 2010-01-13 23:29:15 · 99 阅读 · 0 评论 -
C++常用排序算法
一、简单排序算法 由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC环境 下运行通过。因为没有涉及MFC和WINDOWS的内容,所以在BORLAND C++的平台上应该也不会有什么 问题的。在代码的后面给出了运行过程示意,希望对理解有帮助。1.冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: #include &l...原创 2010-01-13 23:28:21 · 120 阅读 · 0 评论 -
常用排序算法 c源码
一、简单排序算法 由于程序比较简单,所以没有加什么注释。所有的程序都给出了完整的运行代码,并在我的VC环境 下运行通过。因为没有涉及MFC和WINDOWS的内容,所以在BORLAND C++的平台上应该也不会有什么 问题的。在代码的后面给出了运行过程示意,希望对理解有帮助。 1.冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: #include <i...原创 2010-01-13 23:27:20 · 96 阅读 · 0 评论 -
常用的排序算法
1选择排序先在整个序列中选出关键字值最小的元素,如果它不是第一个元素,则将它和第一个元素交换;然后在除一个除第一个位置上的元素以外的其余元素中再选出关键值次最小的元素,如果它不在第二个位置,则和第二个位置上的元素进行交换;依次类推,直至所有元素排序完成.该算法是不稳定的.[1] 算法: 选择排序Algorithm select_sort(s[ ]) //s[ ]...原创 2010-01-13 23:26:18 · 147 阅读 · 0 评论 -
例举四种常用排序算法
●插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。//插入排序(一维数组)function insert_sort($arr){ $count = count($arr); for($i=1; $i<$count; $i++){ $tm...原创 2010-01-13 23:25:01 · 113 阅读 · 0 评论 -
几种常用的排序算法
C#几种常用的排序算法:1 冒泡排序法1冒泡排序法#region 冒泡排序法2public void Sort(int[] list)3{4 long begintime = System.DateTime.Now.Second*1000+System.DateTime.Now.Millisecond;5 WriteLine(begintime);6 int j,temp;7 ...原创 2010-01-13 23:24:14 · 106 阅读 · 0 评论 -
算法的时间复杂度(计算实例)
定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。我们常用大O表示法表示时间复杂性,注意它是某一个算法的时间复杂性。大O表示只是说有上界,由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们在表...原创 2010-07-04 14:54:10 · 135 阅读 · 0 评论