資料結構 2 氣泡排序,二分查詢

2021-09-14 05:06:36 字數 2033 閱讀 2096

氣泡排序的概念:將一串無序數字按照由小到大的順序排列。

氣泡排序的思想:兩個相鄰的數依此比較,保證大數在後面。

(1)第一次查詢:

i: 將第乙個數與第二個數比較,如果第乙個數比第二個數大,則將第乙個數與第二個數交換位置;

ii: 將第二個數與第三個數比較,如果第二個數比第三個數大,則將第二個數與第三個數交換位置;

iii: 以此類推。。。直到與第n個數進行比較。

(2)第二次查詢:

i: 將第乙個數與第二個數比較,如果第乙個數比第二個數大,則將第乙個數與第二個數交換位置;

ii: 將第二個數與第三個數比較,如果第二個數比第三個數大,則將第二個數與第三個數交換位置;

iii: 以此類推。。。直到與第(n-1)個數進行比較。

(3)有幾個數就進行幾次查詢,但是為了提高效率,有n』個數比較的時候就進行(n-1)次查詢,剩下最後乙個數沒有比較的物件,不需要比較。

具體**:

public

class

test0007

}//氣泡排序

public

static

void

bubblesort

(int

array1)

}// 如果過程一次交換都沒發生過,假設有序成立

if(sorted ==

true)}

}//主方法

public

static

void

main

(string[

] args)

; test0007 ep1 =

newtest0007()

; ep1.

bubblesort

(array1)

; ep1.

print

(array1);}

}

二分查詢的概念:二分查詢也稱折半查詢(binary search),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。

二分查詢的條件:

(1)在陣列中查詢;

(2)陣列有序;

(3)只能查詢乙個元素。

二分查詢的思想:

(1)首先找出陣列最中間位置的元素,與要尋找的元素盡心香港比較;

(2)如果相等,則查詢結束;

(3)如果不相等,則判斷大小,重新定義查詢區間;

i: 如果小於中間元素,則定義前半段為新的查詢區間;

ii:如果大於中間元素,則定義後半段為新的查詢區間。

(4)在新的查詢區間中重複以上步驟。直至找到要查詢的元素位置,找到時,返回該元素的下標,或者找不到時,返回-1

具體**如下:

public

class

test0007

else

else}}

return-1

;}//主方法

public

static

void

main

(string[

] args)

;int num =3;

test0007 ep1 =

newtest0007()

; system.out.

println

(ep1.

binarysearch

(array1,num));

}}

氣泡排序 二分查詢

include include include using namespace std int bsearch int t,int n,int x 二分查詢 return null inline void swap int a,int b void init int t,int n for int ...

氣泡排序 二分查詢

二分查詢 在label中無法顯示陣列 解決方法 string str 定義 字串str並賦初值 後 str str myarray i tostring 用str 接收已排序陣列再在label中顯示。剛開始寫二分查詢時找到分支 if sortarray mid num labelres.text 已...

氣泡排序,二分查詢

氣泡排序 lst 88,5,8,6,1,23 for a in range len lst 記錄內部排序的次數 i 0 while i len lst 1 把最大值移動到右端 if lst i lst i 1 比較,lst i lst i 1 lst i 1 lst i 交換 i i 1 print...