二分搜尋演算法求元素位置(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;
}
相關文章
- 二分搜尋樹元素的插入
- 二分搜尋之搜尋陣列中目標元素的首尾下標陣列
- Python之 常用查詢演算法:最小項搜尋、順序搜尋、二分搜尋Python演算法
- 搜尋插入位置
- 二分搜尋演算法的實現演算法
- 每日一道演算法:搜尋插入位置演算法
- 二分搜尋演算法-吃香蕉問題演算法
- C語言:求4x4矩陣外圍元素之和C語言矩陣
- C語言使用指標對陣列指定位置進行插入元素C語言指標陣列
- C語言學習 相同元素C語言
- 主元素問題(C語言)C語言
- 【譯】Swift演算法俱樂部-二分搜尋Swift演算法
- 35. 搜尋插入位置
- 06 二分搜尋--ing
- 從二分搜尋到二叉搜尋樹
- BM搜尋演算法C實現演算法
- 二分搜尋(折半查詢)
- 讓我們一起啃演算法----搜尋插入位置演算法
- 演算法與資料結構之二分搜尋樹演算法資料結構
- Perceptron演算法—C語言演算法C語言
- C語言 DSF (尋求迷宮起點到終點的所有路徑)C語言
- 二分搜尋樹(Binary Search Tree)
- C語言陣列求學生成績C語言陣列
- XDOJ_288 求一個順尋串的next函式值 C語言描述函式C語言
- Java實現 LeetCode 35 搜尋插入位置JavaLeetCode
- 資料結構-二分搜尋樹資料結構
- LeetCode入門指南 之 二分搜尋LeetCode
- LeetCodeHot100 二分查詢 35. 搜尋插入位置 74. 搜尋二維矩陣 34. 在排序陣列中查詢元素的第一個和最後一個位置 33. 搜尋旋轉排序陣列 153. 尋找旋轉排序陣列中的最小值LeetCode矩陣排序陣列
- C語言求200000以內的自守數C語言
- C語言學習之求各因子之和C語言
- A*搜尋演算法概述演算法
- A*搜尋演算法(python)演算法Python
- zinc:替代elasticsearch的輕量級Go語言搜尋引擎ElasticsearchGo
- 排序演算法-C語言實現排序演算法C語言
- 每日一道 LeetCode (10):搜尋插入位置LeetCode
- LeetCode每日一題: 搜尋插入位置(No.35)LeetCode每日一題
- Q2 LeetCode35 搜尋插入位置LeetCode
- win10搜尋檔案在哪裡 檢視搜尋檔案位置的方法Win10