專案結構氣泡排序演算法,原始檔bubblesort.gopackage bubblesort
// 氣泡排序
func bubblesort(values int)
if flag == true
} }}
快速排序演算法,原始檔qsort.gopackage 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.gopackage 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趟排序就是多餘的,什麼也沒做。所以我們可以在 交換的地方加乙個標記...