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 對於任...