在整形有序的陣列中查詢想要的數字,找到了返回數字下標,沒找到返回-1,折半查詢
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[] = { 1, 2, 3, 4, 5, 8, 9, 10 ,20}; int to_find = 5; int left = 0; int right = sizeof(arr) / sizeof(arr[0])-1; int mid = 0; while (left <= right) { mid = (left + right) / 2; if (arr[mid] < to_find) { left = mid + 1; } else if (arr[mid]>to_find) { right = mid - 1; } else { break; } } if (left <= right) printf("找到了,下標為%d", mid); else printf("-1"); system("pause"); return 0; }
相關推薦
(動態規劃DP)面試題:求陣列中兩個數的最大差值(只能下標大的減去下標小的)符合無後效性
空間複雜度優化演算法 void sovle_maxSub_Dp_OptimalSpace(int *a, int n){ int S=0; int max_value=INT_MIN; int max_index=0; for(int i=n-2;i>=1;
【codeforces 731C 】【並查集+貪心 或者dfs搞連通分支 】【有n只襪子,k種顏色,在m天中,左右腳分別穿下標為l,r的襪子,問最少修改幾隻襪子顏色,可以使每天穿的襪子左右兩隻都同色】
描述: C. Socks time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard outpu
在整形有序的陣列中查詢想要的數字,找到了返回數字下標,沒找到返回-1,折半查詢
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[] = { 1, 2, 3, 4, 5, 8, 9, 10 ,20}; int to_find = 5;
寫程式碼可以在整型有序陣列中查詢想要的數字
使用二分法查詢會大大提高效率,不需用遍歷陣列中每一個元素的值 首先解釋二分法 假設要找的數字是5,從12個數中尋找,會先找12的一半6,判斷是大了,於是知道了要找的數字在左邊0——6之間,再取半得到3,是小了,於是在3—6之間再折半為4(為什麼是4,是因為三到六最中的數是4.5,
在整型有序陣列中查詢想要的數字, 找到了返回下標,找不到返回-1.(折半查詢)
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int BinarySearch(int a[], int key, int len) { int ret = -1;//找
題目:寫程式碼可以在整型有序陣列中查詢想要的數字, 找到了返回下標
程式碼: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //2.寫程式碼可以在整型有序陣列中查詢想要的數字, 找到了返回下標,找不到返回 - 1.(折半查詢) //定義一個整形有序陣列a[],設定左端點值和右端點值,兩者
二分查詢(在整型有序陣列中查詢想要的數字,找到了返回下標,找不到返回
在整型有序陣列中查詢想要的數字,找到了返回下標,找不到返回 - 1#include<stdio.h> #include<Windows.h> int binary_search(int arr[]
【C語言】寫程式碼可以在整型有序陣列中查詢想要的數字,找到了返回下標,找不到返回-1.(折半查詢)
定義一個數組,設定它的左右下標,同時定義一箇中間下標mid,每次進行折半查詢,若要查詢的數比mid小,則右下標等於mid-1,若要查詢的數比mid大,則左下標等於mid+1。若要查詢的數等於mid,則迴圈停止。 #include<stdio.h> #include<string
在一個有序陣列中查詢具體的某個數字n
思路: 1.給定一個有序陣列(陣列元素排列有序,升序或者降序) 2.給定一個數字,查詢這個數字是否在陣列中,若存在則返回這個數字的下標 #include <stdio.h> #include <stdlib.h> int main() { int arr[] = {
怎樣從生產數據庫中獲得想要的查詢語句,把結果集批量插入到磁盤txt文件中
txt第一步:建立存儲過程 實現傳入參數,生成結果到磁盤的txt文件中;USE [XXXXX]GO/****** Object: StoredProcedure [dbo].[Proc_sql_to_file] Script Date: 2018/5/13 15:47:10 ******/S
查詢有序陣列中相近的數或下標【JAVA實現】
刷LeetCode過程中遇到的一個知識點,特此記錄~ 給定一個有序陣列與目標值,陣列中不一定有目標值,找出與目標值最相近的數的下標 private int findTarget(int[] nums
offer38-找數字在有序陣列中出現的次數
# coding=utf-8 def GetnumK(data, k): number = 0 length = len(data) if data != None and length > 0: first = Getfirstk(d
寫一個函式,實現一個整形有序陣列的二分查詢
程式程式碼: #include <stdio.h> #include <windows.h> int binary_search(int arr[], int num, int
在二維有序陣列中查詢一個數
有一個二維陣列,陣列的每行從左到右是遞增的,每列從上到下是遞增的。在這樣的陣列中查詢一個數字是否存在, 時間複雜度小於O(N)。 思路分析: 我們知道一維有序陣列的二分查詢,那麼二維陣列是不是也可以用二分查詢呢? 這裡涉及到時間複雜度不能超過O(N),不能一個一個對比查詢。觀察
用二分查詢法在一維有序陣列中查詢某個值並輸出其下標值
關鍵字與左右標的大小比較 #include<stdio.h> int main() { int arr[] = { 0, 1, 2, 3, 4, 6, 7, 9 }; int left = 0; int right = s
(java)二維有序陣列中查詢元素
題目大意: 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 解題思路: (1)一看到有序陣列就想到了二分法查詢,而
返回文件路徑中的想要的值
所在 text sys ext cto get bsp 文件路徑 想要 System.IO.Path.GetFileNam(filePath) //返回帶擴展名的文件名 System.IO.Path.GetFileNameWithoutExtension(fil
給定一個只包含正整數的非空陣列,返回該陣列中重複次數最多的前N個數字 ,返回的結果按重複次數從多到少降序排列(N不存在取值非法的情況)
1 """ 2 #給定一個只包含正整數的非空陣列,返回該陣列中重複次數最多的前N個數字 3 #返回的結果按重複次數從多到少降序排列(N不存在取值非法的情況) 4 解題思路: 5 1.設定一個空字典,去儲存列表中的值和值出現的次數 6 2.使用L.count()方法可以統計出L中值出現的次數
[LeetCode] Search in a Sorted Array of Unknown Size 在未知大小的有序陣列中搜索
Given an integer array sorted in ascending order, write a function to search target in nums. If target exists,
YTUOJ——輸入一個數插入有序陣列中
題目描述 已有一個已排好的9個元素的陣列,今輸入一個數要求按原來排序的規律將它插入陣列中。 輸入 第一行,原始數列。第二行,需要插入的數字。 輸出 排序後的數列 樣例輸入 1 7 8 17 23 24 59 62 101 50 樣例輸出 1 7 8 17 2