Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- val seenVertices = mutable.HashMap[Int, Int]()
- var bitMasks = for (i <- 0 to 24; j <- 0 to 24) yield (1 << i | 1 << j)
- bitMasks = 0 +: bitMasks
- var id = 0
- val uf = UnionFind(200000)
- val bufferedSource = Source.fromFile("/home/asznajder/Coursera/clustering_big.txt")
- for (line <- bufferedSource.getLines()) {
- if (!first) {
- val code = Integer.parseInt(line.replaceAll(" ", ""), 2)
- for (mask <- bitMasks) {
- val modifiedCode = code ^ mask
- seenVertices.get(modifiedCode) match {
- case Some(seen_id) => uf.union(id, seen_id)
- case None => {
- seenVertices(code) = id
- }
- }
- }
- id += 1
- } else {
- first = false
- }
- }
- bufferedSource.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement