go演算法練習

來源:互聯網
上載者:User

標籤:ble   冒泡   return   turn   for   快速排序   imp   main   import   

冒泡排序:

package mainimport(    "fmt")// 1, 38, 4, 5, 10// 1, 4, 38, 5, 10// 1, 4, 5, 38, 10// 1, 4, 5, 10, 38//冒泡排序func bubble_sort(a []int) {    for i := len(a)-1; i > 0; i-- {        for j := 0; j < i; j++ {            if a[j] > a[j+1] {                a[j], a[j+1] = a[j+1], a[j]            }        }    }}func main() {    a := []int{38, 1, 4, 5, 10}    bubble_sort(a)            fmt.Println(a)}

 

選擇排序:

package mainimport(    "fmt")//38, 1, 4, 5, 10//1, 38, 4, 5, 10//1, 4, 38, 5, 10//選擇排序func select_sort(a []int) {    for i := 0; i < len(a)-1; i++ {        for j := i+1; j < len(a);j++ {            if a[j] < a[i] {                a[j], a[i] = a[i], a[j]            }        }    }}func main() {    a := []int{38, 1, 4, 5, 10}    select_sort(a)    fmt.Println(a)}


插入排序:

package mainimport(    "fmt")//38, 1, 4, 5, 10//38//1, 38, //1, 4, 38,//1, 4, 5, 38,//1, 4, 5, 10, 38//插入排序func insert_sort(a []int) {    for i := 1; i < len(a); i++ {        for j := i;j > 0;j-- {            if a[j] < a[j-1] {                a[j], a[j-1] = a[j-1], a[j]            } else {                break            }        }    }}func main() {    a := []int{38, 1, 4, 5, 10}        insert_sort(a)    fmt.Println(a)}


快速排序:

package mainimport(    "fmt")//50, 100, 4, 5, 10, 50//10, 100, 4, 5, 38, 50//10, 38, 4, 5, 100, 50//10, 4, 38, 5, 100, 50//10, 4, 5, 38, 100, 50//5, 4, 10,//4, 5, 10, 38, func partion(a []int, left, right int) int {    var i = left    var j = right    for i < j {        for j > i && a[j] > a[left] {            j--        }        a[j], a[left] = a[left], a[j]        for i < j && a[i] < a[left] {            i++        }        a[left], a[i] = a[i], a[left]        fmt.Println(i)    }    return i}func qsort(a []int, left, right int) {    if left >= right {        return    }    mid := partion(a, left, right)    qsort(a, left, mid-1)    qsort(a, mid+1, right)}func main() {    a := []int{38, 1, 4, 5, 10}    qsort(a, 0, len(a)-1)    fmt.Println(a)}

 

go演算法練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.