在排序陣列中查詢數字

2021-09-26 03:53:19 字數 2016 閱讀 2526

題目一:數字在排序陣列**現的次數。

統計乙個數字在排序陣列**現的次數。例如,輸入排序

陣列和數字3,由於3在這個數

組**現了4次,因此輸出4。

設計乙個改進的二分查詢法,

分別查詢陣列中第乙個該數字和最後乙個該數字,

找到之後;利用索引計算中間該數字的個數;

package helen.c;

public class arrayfind ;

if(testname != null)

system.out.printf("%s begins: ", testname);

int result = arrayfind(data, k);

if(result == expected)

system.out.printf("passed.\n");

else

system.out.printf("failed.\n");

}// 查詢的數字出現在陣列的中間

void test1();

test("test1", data, 3, 4);

}// 查詢的陣列出現在陣列的開頭

void test2();

test("test2", data, 3, 4);

}// 查詢的陣列出現在陣列的結尾

void test3();

test("test3", data, 3, 4);

}// 查詢的數字不存在

void test4();

test("test4", data, 2, 0);

}// 查詢的數字比第乙個數字還小,不存在

void test5();

test("test5", data, 0, 0);

}// 查詢的數字比最後乙個數字還大,不存在

void test6();

test("test6", data, 6, 0);

}// 陣列中的數字從頭到尾都是查詢的數字

void test7();

test("test7", data, 3, 4);

}// 陣列中的數字從頭到尾只有乙個重複的數字,不是查詢的數字

void test8();

test("test8", data, 4, 0);

}// 陣列中只有乙個數字,是查詢的數字

void test9();

test("test9", data, 3, 1);

}// 陣列中只有乙個數字,不是查詢的數字

void test10();

test("test10", data, 4, 0);

}// 魯棒性測試,陣列空指標

void test11()

public static void main( string args)

private static int arrayfind(int a,int target)

int firsttarget=getfirst(a,target,0,a.length-1);

// system.out.println(firsttarget);

int lasttarget=getlast(a,target,0,a.length-1);

return lasttarget-firsttarget+1;

}// 1,2,3,3,3,3,3,5,6,7,8

private static int getfirst(int a, int target, int start, int end)

//尋找第乙個3

if(a[mid]==target)else

}else if(a[mid]>target)else

}private static int getlast(int a, int target, int start, int end)

//尋找最後乙個3

if(a[mid]==target)else

}}

在排序陣列中查詢數字

統計乙個數字在排序陣列 現的次數。例如,輸入排序陣列和數字3,由於3在這個陣列 現了4次,因此輸出4。有序陣列,二分查詢 思路 用二分查詢分別找到待找數字的第乙個和最後乙個 class solution def getnumberofk self,data,k number 0 if data no...

在排序陣列中查詢數字

劍指offer第53題 題目 數字在排序陣列 現的次數 統計乙個數字在排序陣列 現的次數,例如 輸入排序書序和數字3,由於3在這個陣列 現了4次,因此輸出4 發現這個題用到了二分查詢的思想,因為陣列是排序的,所以我們可以查詢出第一次和最後一次出現k的位置,然後兩個位置差 1就是出現的次數了 貼 pu...

在排序陣列中查詢數字

在排序陣列中查詢數字 統計乙個數字在排序陣列 現的次數。示例 1 輸入 nums 5,7,7,8,8,10 target 8輸出 2 示例 2 輸入 nums 5,7,7,8,8,10 target 6輸出 0 我的思路 二分查詢到target,再分別向前向後找等於target的值 public i...