在一個有序陣列中查詢具體的某個數字n
思路:
1.給定一個有序陣列(陣列元素排列有序,升序或者降序)
2.給定一個數字,查詢這個數字是否在陣列中,若存在則返回這個數字的下標
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[] = { 1,2,3,4,5 };
int to_find = 4;
int i = 0;
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
if (to_find == arr[i])
{
break;
}
}
if (i == 5) //因為陣列最後一個元素下標為4.如果i=5就說明
{ //沒找到預期元素
printf(“沒有找到預期的元素\n”);
}
else
{
printf(“找到了,下標為%d\n”);
}
system(“pause”);
return 0;
}
相關推薦
在一個有序陣列中查詢具體的某個數字n
思路: 1.給定一個有序陣列(陣列元素排列有序,升序或者降序) 2.給定一個數字,查詢這個數字是否在陣列中,若存在則返回這個數字的下標 #include <stdio.h> #include <stdlib.h> int main() { int arr[] = {
寫程式碼可以在整型有序陣列中查詢想要的數字
使用二分法查詢會大大提高效率,不需用遍歷陣列中每一個元素的值 首先解釋二分法 假設要找的數字是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
用二分查詢法在一維有序陣列中查詢某個值並輸出其下標值
關鍵字與左右標的大小比較 #include<stdio.h> int main() { int arr[] = { 0, 1, 2, 3, 4, 6, 7, 9 }; int left = 0; int right = s
Python使用二分法實現在一個有序列表中查詢指定的元素
回想這個面試題:Python在一個有序列表中查詢指定的元素? 一開始沒想到使用二分法查詢,直接說了遍歷這個列表與指定元素比較。 二分法是一種快速查詢的方法,時間複雜度低,邏輯簡單易懂,總的來說就是不斷的除以2除以2… 例如需要查詢有序list裡面的某個關鍵字key的位置,那
在一個有序序列中查詢重複/不存在的數
/* * 查詢有序序列中 重複/不存在 的數演算法演示 * 版權所有:http://www.cppblog.com/converse/*/#include <stdio.h>#include <stdlib.h>#include <time.h>#define FUNC_I
leetcode解題之153&154. Find Minimum in Rotated Sorted Array版(在旋轉的陣列中查詢最小數字)
153.Find Minimum in Rotated Sorted Array Suppose an array sorted in ascending order is rotated
在二維有序陣列中查詢一個數
有一個二維陣列,陣列的每行從左到右是遞增的,每列從上到下是遞增的。在這樣的陣列中查詢一個數字是否存在, 時間複雜度小於O(N)。 思路分析: 我們知道一維有序陣列的二分查詢,那麼二維陣列是不是也可以用二分查詢呢? 這裡涉及到時間複雜度不能超過O(N),不能一個一個對比查詢。觀察
(java)二維有序陣列中查詢元素
題目大意: 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 解題思路: (1)一看到有序陣列就想到了二分法查詢,而
把兩個有序數組合併成一個有序陣列,演算法複雜度O(N)
/** * */ /** * @author jueying: * @version 建立時間:2018-10-22 下午01:32:44 * 類說明 */ /** * @author jueying * */ public class Test4 {
在整型有序的陣列中查詢一個數字的下標
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char a[] = { 1,2,3,4,5,6,7,8,9,10 }; int to_find = 6;
在有序遞增陣列中查詢一個缺少的數字
例如2,3,4,5,6,8,9.在這個陣列中我們要找到缺少的7。從直覺上看,我們可以把2到9求和,然後把陣列的成員求和。用數字的和減去陣列的和得到的就是缺少的數字。但是這個辦法的時間複雜度是O(n)。但是我們看到陣列是有序的,能不能通過二分法找到數字呢,答案是肯定的。我們可
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。 時間複雜度小於O(N); 我用一個while迴圈實現了該要求 #include <stdio.h> #include <windows.h>
在整形有序的陣列中查詢想要的數字,找到了返回數字下標,沒找到返回-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;
//楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在
題目: //楊氏矩陣 有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。 時間複雜度小於O(N); 陣列: 1 2 3 2 3 4
楊氏矩陣 //有一個二維陣列. //陣列的每行從左到右是遞增的,每列從上到下是遞增的. //在這樣的陣列中查詢一個數字是否存在。 //時間複雜度小於O(N);
//陣列: //1 2 3 //2 3 4 //3 4 5 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdlib.h> #include <stdio.h> int search(int a
輸入一個數組和一個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字 時間複雜度O(NlogN)
/* *[email protected] 轉載請註明出處 *題目:輸入一個數組和一個數字,在陣列中查詢兩個數, *使得它們的和正好是輸入的那個數字。 *如果有多對數字的和等於輸入的數字,輸出任意一對即可。 *例如輸入陣列1、2、4、7、11、15和數字15。由於