java插入演算法

2021-07-01 23:09:31 字數 1184 閱讀 2790

遍歷演算法針對二叉樹而言的,主要有先序、中序、後序三種遍歷順序,三種順序又分別有遞迴和常規演算法,二叉樹遍歷的主要思想是:遍歷左子樹,遍歷右子樹,訪問根節點,由這三者的遍歷順序來確定是先序、中序還是後序。下面只要求掌握遞迴遍歷演算法,常規遍歷演算法見附錄一。

遍歷順序:訪問根節點,遍歷左子樹,遍歷右子樹。**如下:

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...