【问题描述】

  生成一个随机数组A[64] ,在数组中查找是否存在某个数num。

【答案】

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //普通查找:
int Search(int *p, int n, int num) //找到返回下标,未找到返回-1
{
for (int i = ; i < n; i++)
{
if (p[i] == num)
return i;
} return -;
} //冒泡排序:
void Sort(int *p, int n)
{
for (int i = ; i < n - ; i++)
{
for (int j = ; j < n - - i; j++)
{
if (p[j] > p[j+])
{
int tmp = p[j];
p[j] = p[j + ];
p[j + ] = tmp;
}
}
}
} //二分查找:
int BinarySearch(int *p, int n, int num)
{
int low, high, mid;
low = ;
high = n - ;
mid = (low + high) / ; while (low <= high)
{
if (num == p[mid])
return mid;
else if (num < p[mid])
{
high = mid - ;
mid = (low + high) / ;
}
else
{
low = mid + ;
mid = (low + high) / ;
}
} return -;
} void main()
{
int a[];
time_t tms;
srand((unsigned int)time(&tms)); //生成随机数种子 for (int i = ; i < ; i++)
{
a[i] = rand() % ; //0~100之间的随机数
printf("%d\n", a[i]);
} //int num;
//printf("请输入要查找的数:\n");
//scanf("%d", &num); int ret;
//ret = Search(a, 64, num); Sort(a, ); printf("排序后:\n");
for (int i = ; i < ; i++)
printf("%d\n", a[i]);
int num;
printf("请输入要查找的数:\n");
scanf("%d", &num); ret = BinarySearch(a, , num); if (ret == -)
printf("未找到!\n");
else
printf("找到a[%d]=%d\n",ret,num); system("pause");
}

二分查找法C语言实现的更多相关文章

  1. 用c语言编写二分查找法

    二分法的适用范围为有序数列,这方面很有局限性. #include<stdio.h> //二分查找法 void binary_search(int a[],int start,int mid ...

  2. R语言实现二分查找法

    二分查找时间复杂度O(h)=O(log2n),具备非常高的效率,用R处理数据时有时候需要用到二分查找法以便快速定位 Rbisect <- function(lst, value){ low=1 ...

  3. 【C/C++学院】0723-32位与64位/调戏窗体程序/数据分离算法/内存检索/二分查找法/myVC

    [送给在路上的程序猿] 对于一个开发人员而言,能够胜任系统中随意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并能够运用到系统中,由此简化系统的开发,是其架构生涯的第一步. ...

  4. jvascript 顺序查找和二分查找法

    第一种:顺序查找法 中心思想:和数组中的值逐个比对! /* * 参数说明: * array:传入数组 * findVal:传入需要查找的数 */ function Orderseach(array,f ...

  5. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数   for(int a=1;a<=100;a++){    if(a%7==0||a%10==7||a/10==7){     System.out.print(a+ ...

  6. 二分查找法 java

    前几天去面试,让我写二分查找法,真是哔了狗! 提了离职申请,没事写写吧! 首先二分查找是在一堆有序的序列中找到指定的结果. public class Erfen { public static int ...

  7. 学习练习 java 二分查找法

    package com.hanqi; import java.util.*; public class Test5 { public static void main(String[] args) { ...

  8. Java-数据结构与算法-二分查找法

    1.二分查找法思路:不断缩小范围,直到low <= high 2.代码: package Test; import java.util.Arrays; public class BinarySe ...

  9. 选择、冒泡排序,二分查找法以及一些for循环的灵活运用

    import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] ar ...

随机推荐

  1. div+css 左右两列自适应高度 ,以及父级div也跟着自适应子级的高度(兼容各大浏览器)

    <style type="text/css" media="screen"> <!-- #main {width:500px;_height: ...

  2. 「小程序JAVA实战」 小程序远程调试(九)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-09/ 在开发javaweb应用的时候,如果遇见一个问题都会调试,debug,在火狐和谷歌浏览器的时 ...

  3. <转>Linux环境进程间通信--信号灯(四)

    http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/ 一.信号灯概述 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机 ...

  4. oracle数据库导入导出数据

    导出命令 exp username/password@192.168.x.xx/orcl file='D:\20170126.dmp' log='D:\20170126.log' 导入命令 imp u ...

  5. Effective ObjectiveC 2.0 Note

    [Effective ObjectiveC 2.0 Note] 1.The memory for objects is always allocated in heap space and never ...

  6. 国庆前执行更新承诺SO交期 FP_SO2SAP

    每年9月20日到30号执行以下程序:创建日期为昨天的订单,且承诺交期为10月1到3号,则承诺交期需加7天:创建日期为昨天的订单, 承诺交期为4号到11月1日,承诺交期需加4天 存储过程:FP_SO2S ...

  7. FP服务无法启动,端口被占用

    一.错误如下: Starting CISAgent..Exception in thread "main" com.i2.cis.util.SystemConfigurationE ...

  8. 并发之Striped64(l累加器)

    并发之Striped64(累加器)     对于该类的实现思想:    Striped64是在java8中添加用来支持累加器的并发组件,它可以在并发环境下使用来做某种计数,Striped64的设计思路 ...

  9. codeforce 460DIV2 D题

    感觉这个题不错,对拓扑排序有了更深的了解,用两种拓扑排序都写了些试试. dfs #include <cstdio> #include <algorithm> #include ...

  10. Quick Find

    --------------------siwuxie095                                 Quick Find         这里介绍并查集的一种实现思路:Qui ...