go實現氣泡排序和快速排序

2022-03-23 05:18:03 字數 2023 閱讀 1762

專案結構

氣泡排序演算法,原始檔bubblesort.go

package bubblesort

// 氣泡排序

func bubblesort(values int)

if flag == true

} }}

快速排序演算法,原始檔qsort.go

package qsort

// 快速排序

func quicksort(values int, left, right int)

if j >= p

if values[i] <= temp && i <= p

if i <= p

} values[p] = temp

if p - left > 1

if right - p > 1

}func quicksort(values int)

主檔案main.go

package main

import (

"flag"

"os"

"bufio"

"io"

"strconv"

"time"

"sorter/algorithms/qsort"

"sorter/algorithms/bubblesort"

"fmt"

)var infile *string = flag.string("i","unsorted.dat","file contains values of sorting")

var outfile *string = flag.string("o","sorted.dat","file to receive sorted values")

var algorithm *string = flag.string("a","qsort","sort algorithm")

// 從檔案讀取值

func readvalues(infile string) (values int, err error)

defer file.close()

br := bufio.newreader(file)

values = make(int, 0)

for

break

} if isprefix

str := string(line)//轉換字元陣列為字串

value, err1 := strconv.atoi(str)

if err1 != nil

} return

}// 將值寫入到檔案中

func writevalues(values int, outfile string) error

defer file.close()

for _, value := range values

return nil

}func main()

values, err := readvalues(*infile)

if err == nil

t2 := time.now()

println("the sorting process conts", t2.sub(t1), "to complete.")

writevalues(values, *outfile)

} }else

}

排序結果

C 實現快速排序和氣泡排序

快速排序思路 快速排序之所比較快,因為相比氣泡排序,每次交換是跳躍式的。每次排序的時候設定乙個基準點,將小於等於基準點的數全部放到基準點的左邊,將大於等於基準點的數全部放到基準點的右邊。這樣在每次交換的時候就不會像氣泡排序一樣每次只能在相鄰的數之間進行交換,交換的距離就大的多了。因此總的比較和交換次...

python 實現氣泡排序和快速排序

11.28 學習筆記 設定flag在一定程度上優化了氣泡排序 實現氣泡排序 氣泡排序就是相鄰兩個數比較,大的後移,然後一輪過去後,大的會在最後乙個位置 defbubble sort list for i in range 0 len list 輪數 flag false for j in range...

氣泡排序和優化 go實現

package main import fmt var arr int func bubblesort fmt.println arr 假設我們現在排序ar 這組資料,按照上面的排序方式,第一趟排序後將10和9交換已經有序,接下來的8趟排序就是多餘的,什麼也沒做。所以我們可以在 交換的地方加乙個標記...