遍歷演算法針對二叉樹而言的,主要有先序、中序、後序三種遍歷順序,三種順序又分別有遞迴和常規演算法,二叉樹遍歷的主要思想是:遍歷左子樹,遍歷右子樹,訪問根節點,由這三者的遍歷順序來確定是先序、中序還是後序。下面只要求掌握遞迴遍歷演算法,常規遍歷演算法見附錄一。遍歷順序:訪問根節點,遍歷左子樹,遍歷右子樹。**如下:
void preorder(binarytreenode bt) else
if (!s.isempty()) else
p = null;// 棧為空則查詢完成
void lastorder(binarytreenode p) else
p = p.getrightchild();
堆排序:
// 已知
r[low..high]
中除 r[low]
之外,其餘元素均滿足堆的定義
private
void heapadjust(int r, int low, int high) {
int tmp = r[low];
for (int j = 2 * low; j <= high; j = j * 2) { // 沿關鍵之較大的元素向下進行篩選
if (j < high && r[j] > r[j + 1])// j 指向關鍵之較大的元素
j++;
if (tmp >= r[j])// 若
temp
比其孩子都大,則插入到 low
所指位置
break;
r[low] = r[j];
low = j; // 向下篩選
r[low] = tmp;
public
void heapsort(int r) {
int n = r.length - 1;
for (int i = n / 2; i >= 1; i--)
// 初始化建堆
heapadjust(r, i, n);
for (int i = n; i > 1; i--) { // 不斷輸出堆頂元素並調整
r[1..i-1]
為新堆int tmp = r[1]; // 交換堆頂與堆底元素
r[1] = r[i];
r[i] = tmp;
heapadjust(r, 1, i - 1); // 調整
Java陣列插入演算法
1,建立乙個亂序的陣列 2,arrays.sort 進行公升序排序 3,從控制台輸入乙個新的數字 4,在陣列中找到新數字插入的位置 5,把老陣列以及新數字放在新陣列合適的位置 public static void main string args arrays.sort a scanner sca ...
java 插入排序演算法
從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素小於前面的元素 已排序 則依次與前面元素進行比較如果小於則交換,直到找到大於該元素的就則停止 如果該元素大於前面的元素 已排序 則重複步驟2 重複步驟2 4 直到所有元素都排好序 這是插入排序的...
插入排序演算法(java)
一 基本思想 將乙個資料插入到乙個有序的資料中,從而產生乙個新的 個數加一的有序資料。二 時間複雜度 插入排序演算法的時間複雜度是o n 2 三 排序過程如下 例如第一次排序 32 21,12,34,9,18,11,35 第二次排序 21,32 12,34,9,18,11,35 第三次排序 12,2...