(詳解)
下面的**是 hdu1232
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e9+7;
const
int normal = 1050;
// 結構體的話 把陣列型別一起放到乙個結構體 就行
int parent[normal]; // 儲存根節點
int rank[normal]; // 儲存集合的深度 ,方便合併操作
int ans;
void ufset() // 初始化
}int find(int x) // 查詢x的根節點
while(x != r) // 把路徑上的所有點 都指向 乙個根節點
return r;
}void union(int x,int y) // 判斷 x和y 是否聯通 若不連通則合併
}int main()
printf("%d\n",ans);
}return
0;}
數字排序 o n 時間 o 1 空間
乙個時間複雜度為o n 空間複雜度為o 1 的排序演算法 收藏 乙個時間複雜度為o n 空間複雜度為o 1 的排序演算法 有n個大小不等的自然數 1 n 請將它們由小到大排序。要求程式演算法 時間複雜度為o n 空間複雜度為o 1 從這道題出題意圖來看,出題者主要是想考面試者的思維是否敏捷清醒 做事...
數字排序 o n 時間 o 1 空間
乙個時間複雜度為o n 空間複雜度為o 1 的排序演算法 收藏 乙個時間複雜度為o n 空間複雜度為o 1 的排序演算法 有n個大小不等的自然數 1 n 請將它們由小到大排序。要求程式演算法 時間複雜度為o n 空間複雜度為o 1 從這道題出題意圖來看,出題者主要是想考面試者的思維是否敏捷清醒 做事...
矩陣轉置 O 1 空間
為了方便,使用一維陣列來分析。所謂矩陣轉置,行變列,列變行。在轉置的過程中,有的元素位置是不變的 對於變化位置的元素,要求o 1 空間完成,那麼這些位置的變化一定是有著規律的。舉例,2 5的矩陣,a 轉置後為at 探索下標變化 0 0 1 2 4 8 7 5 1 3 6 3 9 9 這些下標的變化是...