程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 從n個數據中查找一個數

從n個數據中查找一個數

編輯:關於C++

n個數據用一數組a描述,查找對象用x描述。

我們可以將n個數據與查找對象依次比較,可能找到,也可能找不到。這是一種順序查找的方法,請讀者編程實現。

比順序查找進一步的是折半查找,或稱二分查找法。折半查找要求n個數據已排好序,排序的目的就是為了快速查找。假定n個數據已經由小到大排好序。查找到的數據用其下標k描述。是否找到用一標志變量flag描述。

查找問題轉化成在區間[O,n一1]找k。先計算其中點d,如果a[d]一x,則k—d;如果a[d]>x,則查找區間縮小為[O,d];如果a[d]<x,則查找區間縮小為[d,n一1]。要麼找到,要麼查找區間縮小一半,繼續折半查找。

程序如下:

float serach(a,n,x)/*折半查找函數*/
float a[],x;
int n:
{int k,flag;
int b=O,e=n一1,d;
flag=O;
do
{d=(b+e)/2;
if(a[d]==x){k=d;flag=1;}
else if(a[d]>x)e=d;
else b=d:
)while(b<e&&!flag);
if(flag==O)k=O;/*沒找到*/
return(k);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved