![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
危险的凳子
这个作者很懒,什么都没留下…
展开
-
二分查找(C语言)
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 算发要求: 1)必须采用顺序存储结构 2)必须按关键字大小有序排列。 #include int binarySearch(const int *array, int start, int end, int key); int main() { int a[] = {1,原创 2016-08-01 17:23:51 · 379 阅读 · 0 评论 -
中位数
/* 一组数的中位数,就是把一组数从小到大排好后位居中间的 那一个;如果有奇数个数,那么中位数就是中间的那个;如果 有偶数个数,那么中位数就是中间两个数的平均数。 那么有没有办法不用排序就可以求出中位数的方法呢? 可以回想一下qsort中partition的作用:找出一个分界点,左边的 数都小于分界点值,右边的数都大于分界点值。所以,只要不断地 进行partition,直到分界点是left与rig转载 2016-08-10 14:19:55 · 371 阅读 · 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 · 357 阅读 · 0 评论 -
快速排序
快速排序 介绍: 快速排序采用分治法(Divide-and-ConquerMethod)。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 步骤: 1)从数列中挑出一个元素,称为 “基准”(pivot) 2)分区(partition)操作,即所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在原创 2016-08-10 20:19:42 · 249 阅读 · 0 评论