golang實現基本排序演算法

2022-05-10 12:56:25 字數 1906 閱讀 7543

package main

import (

"fmt"

)func main()

//res := selectionsort(arr)// 選擇排序

//res := insertionsort(arr) // 插入排序

//res := insertionsortpro(arr) // 插入排序優化版

//res := bubblesort(arr) // 氣泡排序

//res := mergesort(arr) // 歸併排序

//res := quicksort(arr) // 快速排序

fmt.print(res)

}//選擇排序

//思路:每次迴圈找出最小的數,跟陣列第乙個數交換順序,接下來在剩餘的數里重複以上邏輯

func selectionsort(arr [11]int) [11]int

} //交換最小值與這一次迴圈最左邊值的位置

arr[i], arr[min] = arr[min], arr[i]

} return arr

}//插入排序,類似撲克牌起牌,將未排序的資料插入到已排序的資料中

func insertionsort(arr [11]int) [11]int else

} }return arr

}//插入排序優化版,用賦值代替交換操作

func insertionsortpro(arr [11]int) [11]int else

} arr[j] = temp //找到合適的位置了(左邊不再比該值大),將剛剛待比較的值賦值給這個元素

} return arr

}//氣泡排序,每次和相鄰的元素比較,內層每迴圈一次會把最大的迴圈到最後

func bubblesort(arr [11]int) [11]int

} }return arr

}//氣泡排序優化版,如果某次迴圈發現沒有需要交換的元素,則認為整個排序已完成

func bubblesortpro(arr [11]int) [11]int

} if over == false

} return arr

}//歸併排序

func mergesort(arr int) int

i := length / 2

left := mergesort(arr[0:i])

right := mergesort(arr[i:])

res := merge(left, right)

return res

}//合併陣列

func merge(left, right int) int else

} //如果有乙個陣列比完了,另乙個陣列還有元素的情況,則將剩餘元素新增到結果集內

return result

}//快排,以第乙個值為標準,小於此值的放左邊,大於此值放右邊,將第乙個值放中間,在分好的陣列裡如此往復

func quicksort(arr int) int

p := 0

res := quicksort(arr, p, length-1)

return res

}//遞迴方法

func quicksort(arr int, p int, r int) int

q := partition(arr, p, r)

quicksort(arr, p, q-1)

quicksort(arr, q+1, r)

return arr

}//排序並返回pivot

func partition(arr int, p int, r int) int

} arr[r], arr[j] = arr[j], arr[r]

return j

}

golang演算法 氣泡排序演算法

氣泡排序演算法 1.分析問題 將前n個數字分別進行比較,最大的移動到了最後 下一次,將前n 1個數字分別進行比較,最大的移動到了倒數第二位 依此類推。2.設計演算法 1 第一次排序 索引0至len 陣列 1左右元素進行比較,最大的數排在最後 2 第二次排序 索引0至len 陣列 2左右元素進行比較,...

Java實現基本排序演算法

public class sort public static sort getinstance return sort private void move int array,int from,int end 交換陣列中的兩個元素的位置 param array 待交換的陣列 param i 第乙個...

基本排序演算法 Python實現

基本排序演算法,包括氣泡排序,插入排序,選擇排序,堆排序,快速排序等。氣泡排序 複雜度是n n coding utf8 author haxtraz description 氣泡排序 def bubblesort1 a 每次找到乙個最小元素,放到陣列首部 n len a for i in range...