當前位置:首頁 » 編程語言 » c語言二分法

c語言二分法

發布時間: 2022-02-14 07:54:33

c語言!!!二分法

#include<stdio.h>

voidReverse(inta[],intn){
inti,t;
for(i=0;i<=n/2;++i){
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
}

intResearch(inta[],intn,intx){
intmid,low=0,high=n-1;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==x)returnmid+1;
if(a[mid]>x)low=mid+1;
elsehigh=mid-1;
}
return0;
}

voidShow(inta[],intn){
inti;
for(i=0;i<n;++i)
printf("%d",a[i]);
printf(" ");
}

intmain(void){
inta[]={1,3,4,7,8,9,11,34,67,100,111,222,333,444};
intindex,x=67,n=sizeof(a)/sizeof(int);
printf("倒序前: ");
Show(a,n);
Reverse(a,n);
printf("倒序後: ");
Show(a,n);
printf("請輸入你要查找的數:");
scanf("%d",&x);
index=Research(a,n,x);
if(index)printf("你找的%d,是數組中的第%d個數。 ",x,index);
elseprintf("對不起,沒有找到整數%d。 ",x);
return0;
}

② c語言 二分法

函數名: bsearch
功 能: 二分法搜索
用 法: void *bsearch(const void *key, const void *base, size_t nelem, size_t width, int(*fcmp)(const void *, const *));
語法:
#include <stdlib.h> void *bsearch( const void *key, const void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );
參數:第一個:要查找的關鍵字。第二個:要查找的數組。第三個:指定數組中元素的數目。第四個:每個元素的長度(以字元為單位)。第五個:指向比較函數的指針。
功能: 函數用折半查找法在從數組元素buf[0]到buf[num-1] 匹配參數key。如果函數compare 的第一個參數小於第二個參數,返回負值;如果等於返回零值;如果大於返回正值。數組buf 中的元素應以升序排列。函數bsearch()的返回值是指向匹配項,如果沒有發現匹配項,返回NULL

③ 二分法查找c語言

你那個二分檢索的代碼草看了一下是對的。
但是main函數中定義的數組太大了,會失敗。修改成小一點,或者到堆裡面去動態申請這么大的內存,也可以改成全局數組試試。

④ C語言編程中什麼是二分法

先把數據排序,然後把目標數值與中間的數值相比較,根據中間數值是大於、小於、等於三種情況變化數列的首尾指針,構成新數列,再取新數列的中間數與目標值比較,如此反復。。。

⑤ C語言二分法解方程

太復雜 像函數可以這樣寫 f(x)=2*pow(x,3)-4*pow(x,2)+3*x+6 當遇到更高次的函數,你就會看到它的優越性了 注意要加#includemath.h
fabs是浮點數的絕對值 ,

⑥ 怎麼用C語言求二分法

二分法查找有一個前提,數據應該是排好序的,假設從小到大排列,則:
首先用中間那個數(也可以不是正中間,差一兩位沒有關系,只要保證不忽略數據就行)與查找值比較,大於查找值就跳到左邊。
然後重新設定新的數列。新的數列為,從最小的數值到中間那個數。
以這個新的數列為基礎,重復以上步驟。

⑦ c語言用二分法求方程(-10,10)之間的根

你的好象是算0-10的根,而且只迭代10次,恐怕是沒有正確結果的.
下面的參數對a,b做了少許修改,目的是避免除零錯誤.
float getvalue(float x)
{
return 2*x*x*x-4*x*x+3*x-6;
}

void main()
{

float a=-9.8,b=10.2,c;
c=(a+b)/2;
while(fabs(getvalue(c))>0.00001 && fabs(a-b)>0.00001){
if(getvalue(c)*getvalue(b)<0) a=c;
if(getvalue(a)*getvalue(c)<0) b=c;
c=(a+b)/2;
}
printf("%lf\n",c);
}

⑧ (二分法)C語言程序

1、打開Python開發工具IDLE,新建『search.py』。

⑨ C語言二分法查找

二分法查找又稱折半查字法;
思路是.恩!
舉例吧0,1,2,3,4,5,6,7,8中找5取數組中的一半也就是地五個4與5比較,如果4>5(就是中間的那個數比要找的那個大,那麼就取那個數之前的那部分);如果4<5(就是中間的那個數比要找的那個小,就取那個數只後的那部分);如此循環下去;
不好意思,語文沒學好,表達不清楚

熱點內容
安卓介面除了typec還有什麼 發布:2025-01-09 15:51:35 瀏覽:50
緩存和序列化 發布:2025-01-09 15:45:17 瀏覽:646
生命密碼303數字代表什麼 發布:2025-01-09 15:40:57 瀏覽:30
android源碼導入eclipse 發布:2025-01-09 15:40:18 瀏覽:246
易語言製作軟體源碼 發布:2025-01-09 15:03:27 瀏覽:262
scratch少兒編程是 發布:2025-01-09 15:01:34 瀏覽:713
javamd564加密 發布:2025-01-09 14:58:57 瀏覽:145
javaifint 發布:2025-01-09 14:57:32 瀏覽:488
怎麼配好電腦配置 發布:2025-01-09 14:46:31 瀏覽:837
土豆音頻上傳 發布:2025-01-09 14:45:49 瀏覽:992