go_排序算法_奇偶排序

奇偶排序

核心思想:奇数位和偶数位的数据交替比较,最终实现排序

代码实现:

package main

import "fmt"

func IsSort(arr []int) []int {
	flag := false
	if len(arr) <= 1 {
		return arr
	}
	for flag == false {
		flag = true
		for i := 0; i < len(arr)-1; i = i + 2 {
			if arr[i] > arr[i+1] {
				arr[i], arr[i+1] = arr[i+1], arr[i]
				flag = false
			}
		}

		for i := 1; i < len(arr)-1; i = i + 2 {
			if arr[i] > arr[i+1] {
				arr[i], arr[i+1] = arr[i+1], arr[i]
				flag = false
			}
		}
	}
	return arr

}

func main() {
	arr := []int{5, 555, 4, 7, 5, -7, 99}
	fmt.Println(IsSort(arr))
}
posted @ 2021-03-05 10:19  天下医者不自医  阅读(69)  评论(0编辑  收藏  举报