Go 18.0 专业五


01. 选择排序算法

<h1>1. 选择排序算法</h1> <p>算法描述:从未排序数据中选择最大或者最小的值和当前值交换 <strong>O(n^2)</strong>.</p> <h4>算法步骤</h4> <ul> <li>选择一个数当最小值或者最大值,进行比较然后交换</li> <li> <p>循环向后查进行</p> <p>package sort</p> <p>import &quot;fmt&quot;</p> <p>//获取切片里面的最大值 func SelectMax(arr []int) int { length := len(arr) if length &lt;= 1 { return arr[0] } max := arr[0] for i := 1; i &lt; length; i++ { if arr[i] &gt; max { max = arr[i] } } return max }</p> <p>//切片排序 func SelectSort(arr []int) []int { length := len(arr) if length &lt;= 1 { return arr } for i := 1; i &lt; length; i++ { min := i for j := i + 1; j &lt; length; j++ { if arr[min] &gt; arr[j] { min = j } } if i != min { arr[i], arr[min] = arr[min], arr[i] } } return arr }</p> <p>//选择排序 func main() { arr := []int{1, 9, 10, 30, 2, 5, 45, 8, 63, 234, 12} max := SelectMax(arr) selectsort := SelectSort(arr) fmt.Println(max) fmt.Println(selectsort) }</p> </li> </ul>

页面列表

ITEM_HTML