二分查找 冒泡
来源:互联网 发布:淘宝运费险退换货流程 编辑:程序博客网 时间:2024/06/08 03:44
#include <stdlib.h>#include <stdio.h>//使用二分查找法前提,必须是一个已排序数组void init_array(int a[], int n){ int i; srand(time(NULL)); for (i = 0; i < n; i++) a[i] = rand() % 100;}void show_array(int a[], int n){ int i; for (i = 0; i < n; i++) printf("%d\n", a[i]);}void sort_array2(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++){//for(j=i;j<n-1;j++){ //冒泡排序,每次排好的都放在后面,所以不能这么些。for(j=0;j<n-1-i;j++){if(a[j]>a[j+1]){temp =a[j];a[j] = a[j+1];a[j+1] = temp;}}}}void sort_array(int a[], int n){ int i, j, tmp; for (i = 0; i < n; i++) for (j = 1; j < n-i; j++) if (a[j-1] > a[j]) { tmp = a[j-1]; a[j-1] = a[j]; a[j] = tmp; }}//二分查找,两种实现,递归实现和循环实现/*int search_array(int a[], int n, int key){ int l = 0, r = n, m; while(r >= l) { m = (l+r)/2; if (key == a[m]) return m; else if (key > a[m]) l = m+1; else if (key < a[m]) r = m-1; } return -1;}*/int search_array(int a[], int l, int r, int key){ int m; if (l > r) return -1; m = (l+r)/2; if (key == a[m]) return m; else if (key > a[m]) search_array(a, m+1, r, key); else if (key < a[m]) search_array(a, l, m-1, key);}int main(void){ int a[100], b, res; init_array(a, 100); sort_array(a, 100); show_array(a, 100); scanf("%d", &b); //res = search_array(a, 100, b); res = search_array(a, 0, 100-1, b); if (res == -1) printf("un find\n"); else printf("array %d item is %d\n", res, a[res]); return 0;}
0 0
- 冒泡排序+二分查找
- 冒泡排序、二分查找
- 二分查找 与冒泡
- 二分查找 冒泡
- 冒泡排序和二分查找
- 二分查找与冒泡排序
- 冒泡排序和二分查找
- 冒泡排序和二分查找
- 冒泡排序及二分查找
- 二分查找以及冒泡排序
- java 冒泡排序二分查找
- 冒泡排序,插入排序,二分查找
- 插入,冒泡,选择,快速排序,二分查找
- 插入,冒泡排序算法,二分查找
- 字符串逆序输出,冒泡,二分查找
- 【C/C++】冒泡排序与二分查找
- 冒泡排序、选择排序、二分查找法
- 冒泡排序`交换排序·二分查找
- Maven插件-打包时多环境配置文件设置
- 修改IDA pdb下载目录的方法(已实践)
- 异常处理
- 通俗易懂的数据库范式解释
- JS事件-事件处理程序之跨浏览器事件处理程序
- 二分查找 冒泡
- lintcode(657)Insert Delete GetRandom O(1)
- java 学习之eclipse导包的快捷键
- 本周更新
- Vue.js 与其他框架比较
- 排序选择题
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- adb端口被占以及一些报错的解决
- 优先队列