成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

對c語言的認識和想法 c語言中的折半排序法是怎樣的,基本程序是怎樣的?

c語言中的折半排序法是怎樣的,基本程序是怎樣的?半法應稱為兩點法。如果要查找的數(shù)字是20,則數(shù)組是1478 20 30 34。每次你把中間的數(shù)字和你想比較的數(shù)字,也就是8和20比較,你會發(fā)現(xiàn)20比8大

c語言中的折半排序法是怎樣的,基本程序是怎樣的?

半法應稱為兩點法。如果要查找的數(shù)字是20,則數(shù)組是1478 20 30 34。每次你把中間的數(shù)字和你想比較的數(shù)字,也就是8和20比較,你會發(fā)現(xiàn)20比8大,所以你不需要左邊的數(shù)字,剩下的數(shù)字是20 30如果你拿20和30,你會發(fā)現(xiàn)20比30小。如果你取20和20相等,你就會找到它。如果不是,返回-1。這是程序。#半搜索法也稱為二進制搜索法。它充分利用了元素之間的順序關系,采用分治策略,在最壞情況下可以用O(logn)完成搜索任務。例如,排序后的數(shù)據(jù)是15 12 35 64 78 89 123 456。如果要查找12,請先將12與上述9個數(shù)字中的中間數(shù)字(64)進行比較,12< 64按上述順序排列,因此您找到的數(shù)據(jù)位于前半部分,即15 12 35 64,然后將12與前半部分的中間數(shù)字(12)進行比較。這樣,您可以在兩次搜索后找到一半。半搜索的目的是提高搜索效率

C語言中的“折半查找法”是什么?

#include<stdio.h>

int seek(int*pArr,int low,int high,int num)

void main()

{

int Arr[]={1,2,3,4,5,6,7,8,9,10}

int find,num

printf(“輸入要查找的數(shù)值。n”)

scanf(“%d”,&num)

find=seek(Arr,0,9,num)

if(find==-1)printf(“num=%d未找到!n“,num)

否則printf(”num已找到!narr[%D]=%Dn,find,arr[find])]}

int seek(int*Parr,int low,int high,int Num)

]{//Parr是數(shù)組的名稱。數(shù)組必須按順序排列(這是二分法的要求),這里按從小到大的順序排序

int mid

mid=(低-高)/2

if((低>=高)&(Parr[mid]!=Num))

return-1

]{

]if(Parr[mid]==Num)

return mid

]else if(Parr[mid]>num)

high=mid 1//中間數(shù)大于要檢查的數(shù),表示它可能在中間段之前

else

Low=mid-1//同上,它可能在中間段之后

return seek(Parr,low,high,Num)//遞歸

}]}