type Arr struct{
array [10]int}funcmain(){var arr =&Arr{}for i :=0; i <len(arr.array); i++{
arr.array[i]= rand.Intn(15)}
fmt.Println(arr.array)// 冒泡排序 从第0个元素开始与其后面所有的元素逐一比较//BoobleSort(arr)// 选择排序 从[0~n]中取最小值与1替换 --> 从[(n-1) ~ n]中取最小值与(n-)替换//SelectSort(arr)// 插入排序 将arr[0]与arr[1~n]看出两个数组,逐次从后者中拿出元素与前者比较,且插入相应位置//InsertSort(arr)// 快速排序//QuickSort(arr,0,length(arr.array)-1)
fmt.Println(arr.array)}
冒泡排序
funcBoobleSort(arr *Arr){for i :=0; i <len(arr.array)-1; i++{for j :=0; j <len(arr.array)-1; j++{if arr.array[j]>= arr.array[j+1]{
arr.array[j+1],arr.array[j]= arr.array[j],arr.array[j+1]}}}}
选择排序
funcSelectSort(arr *Arr){for i :=0; i <len(arr.array); i++{
index := i
for j := i; j <len(arr.array); j++{if arr.array[index]>= arr.array[j]{
index = j
}}
arr.array[i],arr.array[index]= arr.array[index],arr.array[i]}}
funcQuickSort(arr *Arr, left int, right int){
l := left
r := right
mid := arr.array[(left+right)/2]for; l < r;{for; arr.array[l]< mid;{
l++}for; arr.array[r]> mid;{
r--}if l >= r {break}
arr.array[l], arr.array[r]= arr.array[r], arr.array[l]//fmt.Println(mid,l, r, arr.array)if arr.array[l]== mid {
r--}if arr.array[r]== mid {
l++}}if l == r {
l++
r--}if left < r {QuickSort(arr, left, r)}if right > l {QuickSort(arr, l, right)}}