package mainimport (
"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...