亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

二分法查找元素位置

發布時間:2020-07-23 05:35:12 來源:網絡 閱讀:299 作者:xujiafan_2015 欄目:編程語言

普通二分法查找元素:

#include <stdio.h>
#include <stdlib.h>

int BinarySearch(int* a, int n, int pos)
{
	int left = 0;
	int right = n-1;
	while (left <= right)
	{
		int mid = left+(right-left)/2;
		if(pos == a[mid])
		{
			return mid;
		}
		else if(pos < a[mid])
		{
			right = mid - 1;
		}
		else
		{
			left = mid + 1;
		}
	}
	return -1;
}

int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10};
	int ret = BinarySearch(arr, 10, 5);
	printf("pos : %d\n", ret);
	system("pause");
	return 0;
}

顯示結果:

二分法查找元素位置

那如果是查找數組中第一次出現的那個元素,這種方法顯然是不可行。

就需要修改一小下下

#include <stdio.h>
#include <stdlib.h>

int BinarySearch(int* a, int n, int pos)
{
	int left = 0;
	int right = n-1;
	while (left <= right)
	{
		int mid = left+(right-left)/2;
		if(pos == a[mid])
		{
			while(mid-1 >= 0 && pos == a[mid-1])
			{
				mid = mid-1;
			}
			return mid;
		}
		else if(pos < a[mid])
		{
			right = mid - 1;
		}
		else
		{
			left = mid + 1;
		}
	}
	return -1;
}

int main()
{
	int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
	int arr2[13] = {1,2,3,4,5,5,5,5,6,7,8,9,10};
	int ret1 = BinarySearch(arr1, 10, 5);
	int ret2 = BinarySearch(arr2, 10, 5);
	printf("pos1 : %d\n", ret1);
	printf("pos1 : %d\n", ret2);
	system("pause");
	return 0;
}

顯示結果:

二分法查找元素位置

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金川县| 丰顺县| 昆明市| 仪征市| 封开县| 吉木乃县| 凤冈县| 莱西市| 民县| 常山县| 新巴尔虎左旗| 吉安市| 新竹县| 宣武区| 阆中市| 连城县| 九龙县| 武威市| 浦东新区| 潮州市| 汕头市| 塔河县| 徐水县| 资源县| 津南区| 龙泉市| 衡阳市| 岑巩县| 曲松县| 山丹县| 弥勒县| 壤塘县| 惠安县| 福建省| 深州市| 桑日县| 资溪县| 左权县| 衡南县| 华容县| 宜君县|