氣泡排序思想:
冒泡排氣泡排序思想:通過外層迴圈控制所要比較的輪數,內層迴圈控制每輪所要比較的次數,每輪都將陣列中的元素j和它相鄰的元素j+1進行比較,若果arr[j] < arr[j + j],則將兩個元素位置進行交換,就如同冒泡一樣,大的泡泡會不斷的向上浮.
public
static
void
bubblesort
(int
arr)}}
}
選擇排序思想:
每一次迴圈,從中選出最小值或者最大值,將最小值或最大值放在陣列的0索引位置,後續的比較就可以忽略已經篩選出來的最小值或者最大值.
public
static
void
selectsort
(int
arr)}}
}
快速排序想:
1. 先設立乙個基準值arrbenchmark,一般會將陣列的0索引位置的值設為基準值.
2. 從陣列的左側和陣列的右側分別開始和基準值進行比較,設立乙個i值(為0索引)每次滿足迴圈條件(arr[i] <= arr[benchmark])的時候進行i++遞增,再設立乙個j值(陣列最大索引)每次滿足迴圈條件(arr[j] >= arr[benchmark])的時候進行j–遞減.
3. 當右側的值(arr[i])大於基準值(arr[benchmark])的時候,跳出當前迴圈,當左側的值(arr[j])小於基準值(arr[benchmark])的時候,跳出當前迴圈,讓後將左側和右側這兩個跳出迴圈的值進行交換,以此方式進行比較,直到i == j 的時候,將基準值和arr[i]進行交換位置,這樣第一遍迴圈結束的時候,基準值arr[benchma]左側的全部小於基準值,右側的值全部大於基準值.
4. 利用遞迴思想,再分別將基準值左側和基準值右側的陣列進行排序,直到整個陣列arr排序完畢.
public
static
void
quicksort
(int
arr,
int low,
int high)
int benchmark = arr[low]
;int i = low;
int j = high;
while
(i < j)
// 再從左側開始找比基準值大的數,如果找到跳出當前迴圈
while
(arr[i]
<= benchmark && i < j)
// 將比基準值大的和比基準值小的元素的位置進行交換
if(i < j)
// 將基準值和 i == j 的位置進行交換
arr[low]
= arr[i]
; arr[i]
= benchmark;
//利用遞迴思想,將基準值左右兩側繼續排序,直到排序完成
quicksort
(arr, low, j -1)
;quicksort
(arr, j +
1, high);}
}
二分查詢思想:
1. 該陣列中的元素必須是有序的.
2. 首先定義三個值,最大索引max,最小索引min,中間索引mid.
3. 進行判斷,如果該元素的值大於中間索引的值(arr[mid]),將最小索引改為min = mid + 1.
4. 如果該元素的值小於中間索引值(arr[mid]),將最大索引值改為 max = mid - 1.
5. 1.如果該值的索引等於中間索引mid,直接返回mid
6. 如果本次迴圈沒有找到該值的索引,將mid重新賦值,繼續查詢,當迴圈結束也沒有找到該值的索引時,進行return.
public
static
intbinarysearch
(int
arr,
int number)
else
if(number < arr[mid]
)else
// 因為最小索引min和最大索引max被重新定義,中間索引也要被重新定義
mid =
(max + min)/2
;}// 當查詢不到值value時候,直接返回-1
return-1
;}
檔案排序及二分查詢法與氣泡排序法
char fputs char s,int n,file fp int fputs char s,file fp fgets正常時返回讀取字串的首位址,出錯或檔案尾,返回null。fputs正常時返回寫入的最後乙個字元,出錯返回eof。define crt secure no warnings in...
二分查詢法及改進
二分查詢演算法基本思想 二分查詢演算法的前置條件是,乙個已經排序好的序列 在本篇文章中為了說明問題的方便,假設這個序列是公升序排列的 這樣在查詢所要查詢的元素時,首先與序列中間的元素進行比較,如果大於這個元素,就在當前序列的後半部分繼續查詢,如果小於這個元素,就在當前序列的前半部分繼續查詢,直到找到...
二分查詢法
二分查詢要求 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。優缺點 折半查詢法的優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。演算法思想 首先,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者...