第2章 排序演算法(續原博)

2021-08-21 12:13:52 字數 1770 閱讀 7992

package com.page1;

public class maxpq>

public void insert(key v)

public key max()

public key delmax()

public boolean isempty()

public int size()

public boolean less(int p,int q) //注意,引數是兩者的下標

public void exch(int p,int q)

private void swim(int k) //上浮函式 }

private void sink(int k) //下沉函式

}

理解過程參考

package com.page1;

public class indexminpq>

public void insert(int k,item x)

public void change(int k,item item)

public boolean contains(int k)

public void delete(int k)

pq[pqindex]=0;

//將待刪除元素與最後乙個元素交換

exch(pqindex,n--);

//調整堆

swim(pqindex);

sink(pqindex);

} public item min()

public int minindex()

public int delmin()

pq[1]=0;

//將待刪除元素與最後乙個元素交換

exch(1,n--);

//調整堆

sink(1);

return minindex;

} public boolean isempty()

private void swim(int k) //上浮函式 }

private void sink(int k) //下沉函式

}

package com.page1;

import edu.princeton.cs.algs4.in;

public class multiway

//依次交換最大值與陣列末尾值,並減少待處理的陣列長度,使得最後得到排序好的陣列

while(n>1)

//再將a陣列中的數賦回給a1陣列

for(int i=1;i<=a1.length;i++)

}private static void sink(comparable a,int p,int q) //從p到q進行下沉操作 }

private static void sink(comparable a,int k) //下沉函式

exch(a,k,j);

k=j;

} }public static boolean less(comparable a,int p,int q) //注意,引數是兩者的下標

public static void exch(comparable a,int p,int q)

public static void main(string args)

; heap.sort(a);//注意可以使用comparable介面的是integer而不是int

for(int i=0;i}

}

(原)第2章 類

class fraction private int m numerator int m denominator int main class fraction fraction const fraction other m number other.m number m denom other.m...

第 2 章 演算法

演算法 是解決待定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。指演算法在執行有限的步驟後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。演算法的每一步驟都具有確定的含義,不會出現二義性。演算法的每一步都必須是可行的,也就是說,每一步都能夠通過...

第2章 演算法分析

知識點 2.1 數學基礎 法則1 如果t1 n o f n 且t2 n o g n 那麼 a t1 n t2 n o f n g n 或者t1 n t2 n o max f n g n b t1 n t2 n o f n g n 法則2 如果t n 是乙個k次多項式,則t n n k 法則3 對於任...