结论:快排比冒泡慢
bubbleSort
// 两个单词如果包含相同的字母,次序不同
func bubbleAsort(values []byte) {
for i := 0; i < len(values)-1; i++ {
for j := i+1; j < len(values); j++ {
if values[i]>values[j]{
values[i],values[j] = values[j],values[i]
}
}
}
}
func isAnagram(s string, t string) bool {
if len(t) > len(s) || len(t) < len(s){
return false
}
sq1 := []byte(s)
sq2 := []byte(t)
bubbleAsort(sq1)
bubbleAsort(sq2)
for i:=0; i<len(s); i++ {
if sq1[i] != sq2[i]{
return false
}
}
return true
}
quickSort
几秒前 通过 84 ms 3.5 MB Golang
8 分钟前 超出时间限制 N/A N/A Golang
// 两个单词如果包含相同的字母,次序不同
func quickSort(arr []byte, left int, right int) {
if left > right {
return
}
i := left
j := right
get := arr[right];
for i < j {
for i < j && arr[i] <= get{
i++
}
arr[j] = arr[i]
for i < j && arr[j] >= get {
j--
}
arr[i] = arr[j]
}
arr[i] = get
quickSort(arr,left,i- 1)
quickSort(arr,i+1,right)
}
func isAnagram(s string, t string) bool {
if len(t) > len(s) || len(t) < len(s){
return false
}
sq1 := []byte(s)
sq2 := []byte(t)
quickSort(sq1, 0, len(sq1)-1)
quickSort(sq2, 0, len(sq2)-1)
for i:=0; i<len(s); i++ {
if sq1[i] != sq2[i]{
return false
}
}
return true
}