ex05-04.cpp

来自「数据结构常用算法合集」· C++ 代码 · 共 48 行

CPP
48
字号
//EX05-04.cpp
#include <iostream.h>	//cout,cin
#include <conio.h>		// getch()
#include <stdlib.h>	//random
const int N=20;
int search(int data[],int);
void main()
{ int ran[N],i,j,data;
  char ch;
  for (i=0;i<N;i++)
  ran[i]=random(101);	//get random data
  for (i=0;i<N;i++)		//sorting
  for (j=0;j<N-i-1;j++)
  if (ran[j]>ran[j+1])
  { int t=ran[j];
    ran[j]=ran[j+1];
    ran[j+1]=t;
  }
  cout << "Data as following:\n";
  for (i=0;i<N;i++)
  cout << ran[i]<<' ';
  cout << endl;
  do
  { cout << "Enter search data(0-100):";
    cin >> data;
    int find =search(ran,data);
    if (find==-1)
    cout << "Not found.\n";
    else
    cout << "Data at "<<find << " position.\n";
    cout << "Search again?(y/n)";
    cin >> ch;
  }while (ch=='y' || ch=='Y');
}
int search(int data[],int key)
{ int L=0,M,R=N;
  while (R>=L)
  { M = (L+R)/2;
    if (key==data[M])
    return M;
    else
    if (key>data[M])
      L = M +1;
    else R = M - 1;
  }
  return -1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?