快排,二分查找
来源:互联网 发布:网络交换机的价格 编辑:程序博客网 时间:2024/04/29 18:25
#include <stdio.h>#include <stdlib.h>int partition(int a[], int b, int e){int i, j;int t;i = rand()%(e+1 - b) + b;t = a[i];a[i] = a[e];a[e] = t;i = b - 1;for (j = b; j < e; j++){if (a[j] <= a[e]){i ++;t = a[i];a[i] = a[j];a[j] = t;}}i ++ ;t = a[i];a[i] = a[e];a[e] = t;return i;}void qsort(int a[], int b, int e){if (b >= e)return;int p = partition(a, b, e);qsort(a, b, p-1);qsort(a, p+1, e);}int bin_search(int a[], int b, int e, int s){int l, h, m;l = b;h = e;// 多个值相同,返回最后一个// 主要看h与l能否相遇// 多个值相同,返回哪个主要看 = m在哪。while(h > l){m = l + (h - l) /2 + 1;if (a[m]<= s)l = m;elseh = m -1;}printf("%d\n", l);if (a[l] == s)return 1;return 0;}int main(){int a[100];int i, j;for (i =0; i < 100; i++){a[i] = rand()%1000;printf("%d:%d\n",i, a[i]);}qsort(a, 0, 99);for (i =0; i < 100; i++)printf("%d:%d\n",i, a[i]);printf("there is %d", bin_search(a, 0, 99, 827));system("pause");}
0 0
- 快排 + 二分查找
- 快排,二分查找
- 快排,二分查找
- 快排和二分查找
- 快排&归并&二分查找
- SDUT2040 快排与二分查找
- 二分查找与快排算法
- python 实现快排及二分查找
- 面试题目-堆排、快排、二分查找
- Java基础算法:堆排,快排,二分查找
- sort(排序) qsort(快排) bsearch(二分查找)
- 字符串查找(二分和快排的运用)
- SDUT 1500 Message Flood (快排+二分查找)
- 二分查找 归并排序 快排 详解C++
- 快排 + 二分
- 二分 + 快排
- 【顺序查找表】 包含顺序查找和二分查找,顺手加入了快排
- 二分查找的改进 差值查找(low<=high,这与快排low<high)
- 使用Java实现MP3音乐播放器
- TextKit浅析
- Java线程的同步和异步的区别
- java web 防盗链
- strtok_r函数
- 快排,二分查找
- 联想thinkPad s1 yoga 如何用U盘安装win7
- C++ COM组件编写初探
- Asp.net 获取指定目录大小 C#
- NDK编译C/C++文件
- “谷歌大脑”吴恩达加盟百度背后的故事
- CakePHP的conditions设置不等于查询 != <>
- R语言 arules包 apriori()函数中文帮助文档(中英文对照)
- 怎么经常出问题