duyquang6
Senior Member
cái này ko phải sort nhé mn, cái này là sort.Ints nhé. I'm donechả cần làm gì cao siêu, sort này nọ, chỉ cần hash map là đc mà
Code:sort.Ints(keys)
Last edited:
cái này ko phải sort nhé mn, cái này là sort.Ints nhé. I'm donechả cần làm gì cao siêu, sort này nọ, chỉ cần hash map là đc mà
Code:sort.Ints(keys)
Bài này đâu cần sort keys, chỉ cần chạy từ 1 -> 10 là đc, bỏ 1 loop 1 sort là đẹp.chả cần làm gì cao siêu, sort này nọ, chỉ cần hash map là đc mà
https://play.golang.org/p/5dOvtnepj7x
Code:package main import ( "fmt" "sort" "strconv" ) func main() { fmt.Println("Hello, playground") arr := []int{1, 2, 9, 134, 12, 1} fmt.Println(sortLength(arr)) } func sortLength(arr []int) []int { lengthMap := make(map[int][]int) keysMap := make(map[int]bool, 0) var result []int for _, v := range arr { lengthInt := len(strconv.Itoa(v)) lengthMap[lengthInt] = append(lengthMap[lengthInt], v) keysMap[lengthInt] = true } var keys []int for i, v := range keysMap { if v == true { keys = append(keys, i) } } sort.Ints(keys) for _, k := range keys { result = append(result, lengthMap[k]...) } return result }
bác này nói có lý này,thật cái vụ bigO nó chỉ có ý nghĩa khi số lượng phần tử phải rất lớn ( tầm hơn 1tr) lúc này ta mới có thể xem các phép tính trong 1 vòng lặp là không đáng kể và gần như là bằng nhau. -> thường thuật toán này quan trọng khi xử lý big data.
Còn thường nếu không phải là big data, thì sự khác biệt việc giữa O(n) vs O(n^2) có thể không đáng kể mà dùng quicksort có sắn trong nhiều ngôn ngữ vs tường mình hơn hẳn
cái này ko phải sort nhé mn, cái này là sort.Ints nhé. I'm done
Bài này đâu cần sort keys, chỉ cần chạy từ 1 -> 10 là đc, bỏ 1 loop 1 sort là đẹp.