本篇列出了以下演算法
1 二分查詢
2 氣泡排序
3 插入排序
4 二路歸併排序
5 快速排序
6 選擇排序
二分查詢
public
static
intarraybinarysearch
(int
array,
int key)
if(key>array[mid]
)else
}return-1
;}
氣泡排序
public
static
int[
]arraybubblesort
(int
array)}}
return array;
}
插入排序
public
static
int[
]arrayinsertsort
(int
array)
array[i]
=temp;}}
return array;
}
二路歸併排序
public
static
void
merge
(int
array,
int p,
int t,
int q)
else
}while
(i>t && j<=q)
while
(i<=t)
for(k =
0,i = p; k,k++
)}
快速排序
public
static
int[
]arrayquicksort
(int
array,
int low,
int high)
if(iwhile
(array[i]
if(i}while
(i!=j)
; array[i]
=temp;
arrayquicksort
(array,low,i-1)
;arrayquicksort
(array,i+
1,high);}
return array;
}
選擇排序
public
static
int[
]arrayselectsort
(int
array)
}int temp =array[i]
; array[i]
=array[min]
; array[min]
=temp;
}return array;
}
演算法設計與分析 堆排序
後記乙個高效的排序演算法,對整個計算機領域的貢獻都是極大的。在我看來,堆排序演算法就是這樣一種高效的排序演算法,它本身的設計就是非常巧妙的。等我以後寫了二叉樹分析的部落格再附上我自己的,嘿嘿。一棵父節點元素一定大於等於子節點元素的完全二叉樹 以上不是水字數,只是附上我的理解罷了 如上圖,看第二個,首...
演算法設計與分析 氣泡排序
1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。3.針對所有的元素重複以上的步驟,除了最後乙個。4.持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。時間複雜度 若檔案...
演算法設計與分析 快速排序
設要排序的陣列是a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它左邊,所有比它大的數都放到它右邊,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產生變動。假設一...