二分搜尋演算法求元素位置(c語言)
題目:設a[0:n-1]是已經排好序的陣列。請修改二分搜尋演算法,使得當搜尋元素x不在陣列中時,返回小於x的最大元素位置i,和大於x最小元素的位置j。當搜尋元素在陣列中時,i和j是相同的,均為x在陣列中所在的位置。
c語言實現如下:
#include<stdio.h>
int *find_location(int *a,int left,int right,int x);
int mian(){
int a[10]={11,22,33,44,55,66,77,88,99,111};
int *result=find_location(a,0,9,44);
if(result[0]==result[1])
{
printf("查詢的元素為第%d號元素\n");
} else{
printf("查詢的元素位於陣列的第%d號元素和第%d號元素之間\n",result[0],result[1]);
}
return 0;
}
int *find_location(int *a,int left,int right,int x){
int center=(left+right)/2;
int result[2];
if((right-left)<=1){
result[0]=left+1;
result[1]=right+1;
return result;
}
if(a[center]==x){
result[0]=result[1]=center+1;
}else{
if(x<a[center]){
return find_location(a,left,center,x);
}else{
return find_location(a,center,right,x);
}
}
return result;
}
相關文章
- 二分搜尋樹元素的插入
- #演算法#二分搜尋演算法
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- 搜尋插入位置
- 【譯】Swift演算法俱樂部-二分搜尋Swift演算法
- 二分搜尋演算法的實現演算法
- Python之 常用查詢演算法:最小項搜尋、順序搜尋、二分搜尋Python演算法
- 二分搜尋演算法-吃香蕉問題演算法
- 每日一道演算法:搜尋插入位置演算法
- 06 二分搜尋--ing
- 35. 搜尋插入位置
- C語言使用指標對陣列指定位置進行插入元素C語言指標陣列
- C語言學習 相同元素C語言
- 主元素問題(C語言)C語言
- BM搜尋演算法C實現演算法
- C語言:求4x4矩陣外圍元素之和C語言矩陣
- 二分搜尋(折半查詢)
- LintCode 搜尋插入位置
- 【c語言】求絕對值C語言
- 演算法與資料結構之二分搜尋樹演算法資料結構
- 尋找最大公因數(歐幾里得演算法)--C語言描述演算法C語言
- 讓我們一起啃演算法----搜尋插入位置演算法
- OJ lintcode 搜尋插入位置
- C語言 DSF (尋求迷宮起點到終點的所有路徑)C語言
- Perceptron演算法—C語言演算法C語言
- 資料結構-二分搜尋樹資料結構
- 尋路之 A* 搜尋演算法演算法
- C語言陣列求學生成績C語言陣列
- 搜尋引擎語法
- google搜尋語法Go
- C++搜尋與回溯演算法之LETTERS(字母)C++演算法
- A*搜尋演算法概述演算法
- zinc:替代elasticsearch的輕量級Go語言搜尋引擎ElasticsearchGo
- 谷歌Linux桌面搜尋釋出 支援10種語言谷歌Linux
- XDOJ_288 求一個順尋串的next函式值 C語言描述函式C語言
- C語言學習之求各因子之和C語言
- win10搜尋檔案在哪裡 檢視搜尋檔案位置的方法Win10
- C++語言演算法之求任意兩個相同字元的最大距離C++演算法字元