AI智能
改变未来

go实现冒泡排序

冒泡排序的每次外层循环都将当前最大值(最小值)排列到相应位置。
例如给数组data[10]进行从小到大的冒泡排序
第一次循环将最大值存放到data[9]的位置上
第二次循环将剩余的最大值存放到data[8]的位置上

package mainimport (\"fmt\"\"math/rand\"\"time\")//从小到大排列func bubbleSort(data []int) {size := len(data)/*外层循环,依次针对从最右到最左的每个位置进行内层循环的冒泡第一次循环,将最大值存放到最右边的位置第二次循环,将第二大的值存放到最右边第二的位置...*/for i := 0; i < size; i++ {/*内存循环,冒泡,从data[0]到data[size-1-i]每次都使用data[j]和data[j+1]比较如果data[j] > data[j+1],则交换二者位置确保最大的数往上冒泡*/for j := 0; j < size-1-i; j++ {if data[j] > data[j+1] {data[j], data[j+1] = data[j+1], data[j]}}}}func main() {rand.Seed(time.Now().UnixNano() / 1000)arr := [100]int{}for i := 0; i < 100; i++ {arr[i] = rand.Intn(1000)}fmt.Println(arr)bubbleSort(arr[:])fmt.Println(arr)}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » go实现冒泡排序