日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

C语言---二分法搜索

發(fā)布時(shí)間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言---二分法搜索 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//一維數(shù)組二分法
#include <stdio.h>
int search(int number,int dict[],int length); //二分法搜索函數(shù)聲明,返回下標(biāo) 
int main(){int num;//數(shù)組大小 int i,j;//循環(huán)變量 printf("請(qǐng)輸入數(shù)組大小:");scanf("%d",&num);int dict[num];int num_1;int item; //排序時(shí)作為中間變量 printf("請(qǐng)輸入數(shù)組元素:");for(i=0;i<num;i++){scanf("%d",&dict[i]);}//進(jìn)行二分法搜索之前,先把數(shù)組從小到大排序/*在n個(gè)數(shù)中找最小的,與dict[0]交換在n-1個(gè)數(shù)中找最小的,與dict[1]交換在n-2個(gè)數(shù)中找最小的,與dict[2]交換*/ for(i=0;i<num;i++){num_1=i;for(j=i+1;j<num;j++){if(dict[j]<dict[num_1]){num_1=j;}}item=dict[num_1];  //交換順序        dict[num_1]=dict[i];dict[i]=item;}//輸出排序后的數(shù)組printf("排序后的數(shù)組:");for(i=0;i<num;i++){printf("%3d",dict[i]);}printf("\n"); printf("PS:下標(biāo)為排序后的下標(biāo)\n");//二分法排序int num_num;//接受下標(biāo) int number;  //搜索目標(biāo)數(shù)字 printf("請(qǐng)輸入要查找的數(shù):");scanf("%d",&number);num_num=search(number,dict,sizeof(dict)/sizeof(dict[0]));if(num_num!=-1){printf("目標(biāo)數(shù):%d   下標(biāo)為:%d",number,num_num);}else{printf("NOT FOUND");}return 0;
} int search(int number,int dict[],int length){int i;int ret=-1;int left=0;int right=length-1;int mid=(left+right)/2;while(right>=left){if(dict[mid]<number){left=mid+1;mid=(left+right)/2;}else if(dict[mid]>number){right=mid-1;mid=(left+right)/2;}else{ret=mid;break;}}return ret;
}

總結(jié)

以上是生活随笔為你收集整理的C语言---二分法搜索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。