Java排序演算法之二分查詢

2021-04-27 22:39:04 字數 1676 閱讀 1371

/***二分查詢特定整數在整型陣列中的位置(非遞迴)

*查詢線性表必須是有序列表

*@paramdataset

*@paramdata

*@returnindex

public int binarysearch(int dataset, int data) else if (data > dataset[midindex]) else {

return midindex;

return -1;

public static void main(string args) {

sorttest sorttest = new sorttest();

int array = sorttest.createarray();

system.out.println("**********氣泡排序後(正序)**********");

sorttest.bubblesort(array, "asc");

system.out.println("**********氣泡排序後(倒序)**********");

sorttest.bubblesort(array, "desc");

array = sorttest.createarray();

system.out.println("**********倒轉陣列後**********");

sorttest.reverse(array);

array = sorttest.createarray();

system.out.println("**********選擇排序後(正序)**********");

sorttest.selectsort(array, "asc");

system.out.println("**********選擇排序後(倒序)**********");

sorttest.selectsort(array, "desc");

array = sorttest.createarray();

system.out.println("**********插入排序後(正序)**********");

sorttest.insertsort(array, "asc");

system.out.println("**********插入排序後(倒序)**********");

sorttest.insertsort(array, "desc");

array = sorttest.createarray();

system.out.println("**********快速排序後(正序)**********");

sorttest.quicksort(array, "asc");

sorttest.printarray(array);

system.out.println("**********快速排序後(倒序)**********");

sorttest.quicksort(array, "desc");

sorttest.printarray(array);

system.out.println("**********陣列二分查詢**********");

system.out.println("您要找的數在第" + sorttest.binarysearch(array, 74)

+ "個位子。(下標從0計算)");

java演算法之二分查詢

package com.hym.test.algorithms public class binaryserch public int searchbycycle int thefindnum else if begin end else else if thefindnum arraytest m...

Java演算法之二分查詢演算法

折半查詢又叫二分法查詢,在乙個查詢區間中,確定出查詢區間的中心位置,用待查詢資料元素的關鍵字與中心位置上的資料元素的關鍵字比較,若兩者相等,則查詢成功 否則,若前者小於後者,則把查詢區間定為原查詢區間的前半段繼續這樣的過程 否則,則把查詢區間的後半段繼續這樣的過程。二分查詢演算法是建立在有序陣列基礎...

演算法之二分查詢

總時間限制 1000ms 記憶體限制 65536kb 描述在乙個非降序列中,查詢與給定值最接近的元素。輸入第一行包含乙個整數n,為非降序列長度。1 n 100000。第二行包含n個整數,為非降序列各元素。所有元素的大小均在0 1,000,000,000之間。第三行包含乙個整數m,為要詢問的給定值個數...