1. 程式人生 > 實用技巧 >Scalar evolution技術與i^n求和優化

Scalar evolution技術與i^n求和優化

技術標籤:演算法題目

實現優化(路徑壓縮)

public class QuickUnionUF{
	private int[] roots;
//建構函式(各自為營)
	public QuickUnionUF(int N){
		roots=new int[N];
  		for(int i=0;i<N;i++){
  			roots[i]=i;  //初始化roots陣列
  		}
 	}
//尋根節點函式
	private int findRoot(int i){
		int root=i;
		while(root!=roots[root]) 
		root=roots[root];
//不是根節點時一層一層向根迴圈,找到根節點跳出迴圈 while(i!=roots[i]){ int temp=roots[i]; roots[i]=i; i=temp; //從i開始到i的根節點root迴圈一次,記錄經過的所有節點,並連線到root上,實現優化 } return root; } //判斷p和q是否在同一個集裡(root相同) public boolean connected(int p,int q){ return findRoot(p)==findRoot(q); } //把p和q的連線到同一個集合裡 public void union(int
p,int q){ int qroot=findRoot(q); int proot=findRoot(p); roots[proot]=qroot; } }