
数据结构与算法
危险的凳子
这个作者很懒,什么都没留下…
展开
-
二分查找(C语言)
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。算发要求:1)必须采用顺序存储结构2)必须按关键字大小有序排列。#includeint binarySearch(const int *array, int start, int end, int key); int main() { int a[] = {1,原创 2016-08-01 17:23:51 · 413 阅读 · 0 评论 -
中位数
/*一组数的中位数,就是把一组数从小到大排好后位居中间的那一个;如果有奇数个数,那么中位数就是中间的那个;如果有偶数个数,那么中位数就是中间两个数的平均数。那么有没有办法不用排序就可以求出中位数的方法呢?可以回想一下qsort中partition的作用:找出一个分界点,左边的数都小于分界点值,右边的数都大于分界点值。所以,只要不断地进行partition,直到分界点是left与rig转载 2016-08-10 14:19:55 · 415 阅读 · 0 评论 -
求最大公约数
求最大公约数有两种方法:辗转相除法(欧几里得算法)和更相减数法辗转相除法:设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q......r2(0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除以r2,……如此下去,直到能原创 2016-08-12 10:28:10 · 396 阅读 · 0 评论 -
快速排序
快速排序介绍: 快速排序采用分治法(Divide-and-ConquerMethod)。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。步骤:1)从数列中挑出一个元素,称为 “基准”(pivot)2)分区(partition)操作,即所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在原创 2016-08-10 20:19:42 · 284 阅读 · 0 评论