zoukankan      html  css  js  c++  java
  • 50个[100,300]的随机数,要求用二分法查找从键盘录入的关键数字。找到回复位置,找不到回复不存在(C语言)

    2019

    50个[100,300]的随机数,要求用二分法查找从键盘录入的关键数字。找到回复位置,找不到回复不存在

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <time.h>
     4 
     5 void sort(int arr[])
     6 {
     7     int t;
     8     int i = 0, j = 0;
     9     for(i=0; i<49; i++)
    10         for(j=i+1; j<50; j++)
    11         {
    12             if(arr[i]>arr[j])
    13             {
    14                 t = arr[i];
    15                 arr[i] = arr[j];
    16                 arr[j] = t;
    17             }
    18         }
    19 }
    20 void BinarySearch(int arr[], int t)
    21 {
    22     int mid, low, high;
    23     low = 0;
    24     high = 50;
    25     while (low <= high)
    26     {
    27         mid = (low+high)/2;
    28         if (arr[mid] == t)    break;
    29         else if(arr[mid] < t)    low = mid+1;
    30         else high = mid-1;
    31     }
    32     if (low <= high)
    33         printf("要查询的值%d在第%d个位置", t, mid+1);
    34     else
    35         printf("该值不存在");
    36 }
    37 
    38 int main()
    39 {
    40     int i, a, t;
    41     srand((unsigned)time(NULL));
    42     int arr[50];    //50个随机数
    43     for (i=0; i<50; i++)
    44     {
    45         a = rand()%201+100;    //50个100-300的随机数
    46         arr[i] = a;
    47     }
    48     sort(arr);    //先对随机数从小到大排序 
    49     for(i=0; i<50; i++)
    50     {
    51         printf("%d ", arr[i]);
    52     }
    53     printf("
    ");
    54     printf("请输入要查询的值:"); 
    55     scanf("%d", &t);
    56     BinarySearch(arr, t);
    57 }
  • 相关阅读:
    Bash快捷键
    Java Web学习笔记--JSP for循环
    Python学习笔记--简介
    Java学习笔记-数组
    JavaScript学习笔记一
    Java数组
    MongoDB学习---安装配置
    Java Web学习笔记-Servlet不是线程安全的
    Java Web学习笔记-重定向Redirect
    获取汇率的BAPI
  • 原文地址:https://www.cnblogs.com/zhengxin909/p/14117436.html
Copyright © 2011-2022 走看看