博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go 测试sort性能
阅读量:4519 次
发布时间:2019-06-08

本文共 3534 字,大约阅读时间需要 11 分钟。

package mainimport "fmt"import "os"import "flag"import "bufio"import "io"import "time"import "strconv"//import "algorithm/qsort"import "algorithm/bubblesort"var infile *string = flag.String("i","unsorted.dat","file container unsorted")var outfile *string =flag.String("o","sorted.dat","file container sorted")var algorithm *string =flag.String("a","bubblesort","sort algortihm")func readValue (infile string)(values []int,err error){        file,err := os.Open(infile)        if err != nil{                fmt.Println("open failed")                return         }        defer file.Close()        br := bufio.NewReader(file)                values =make([]int ,0)        for{                line,isprefix,err1 := br.ReadLine()                if err1 !=nil{                        if err1 !=io.EOF{                                err=err1                                }                        fmt.Println("readline error")                                                         //      return                         break                }                       if isprefix {                        fmt.Println("too long")                        return                 }                       str:= string(line)                                value ,err2 :=strconv.Atoi(str)                                if err2 !=nil{                        err2=err                        fmt.Println("conv failed")                        return                 }                values = append(values,value)        }        return                  }func writeValue(values []int ,outfile string) error{        file,err1 :=os.Create(outfile)        if err1 !=nil {                //err=err1                fmt.Println("write is errr")                return err1        }        defer file.Close()        for  _,value := range values{                str :=strconv.Itoa(value)                file.WriteString(str+"\n")        }        return nilfunc main(){        flag.Parse()        if infile != nil{                fmt.Println("inline =",*infile,"outfile =:",*outfile,"algorithm =: ",*algorithm)        }               values,err := readValue(*infile)        if err ==nil{                t1 :=time.Now()        //      switch *algorithm {        //              case "qsort":        //                      qsort.Quick(values)        //              case bubblesort:                                bubblesort.BubbleSort(values)        //              default:        //                      fmt.Println("switch error")        //      }                       t2:=time.Now()                fmt.Println("sort time is %d",t2.Sub(t1))       //              fmt.Println(values)                writeValue(values,*outfile)        }else{                fmt.Println("readLIne is ERROR")        }}

上面的是src中的主文件

algorithm中的主要是排序算法,我这里只有bubblesort,额外还可以有其他的,对于测试文件,我们只需要写_test.go就可以了,

我们可以在主程序中,使用swith进行选择,但是这里的swith遇到一个问题,就是当go build sorter的时候,总是报without selecor的错误,这个问题现在我还没有解决,所有我注释掉了,我们需要在简历一个unsortred.dat的文件,至于输出文件,通过os.Create

自己就创建了。

go build algorithm/bubblesort

go install algorithm/bubblesort

go build sorter生出二进制文件

./sorter -i unsorted -o sorted

package bubblesortfunc BubbleSort( values [] int){    flag :=false    for i :=0 ;i
package bubblesortimport "testing"func TestBubbleSort1(t *testing.T){    values :=[]int{
5,3,6,2,4} BubbleSort(values) if values[0] !=2 || values[1]!=3 || values[2] !=4 || values[3] !=5 ||values[4] !=6{ t.Error("bubblesor is falied ",values) }}

 

转载于:https://www.cnblogs.com/13224ACMer/p/7046018.html

你可能感兴趣的文章
php 魔术方法 __autoload()
查看>>
js div拖动动画运行轨迹效果
查看>>
使用Struts 2框架实现文件下载
查看>>
Recipe 1.9. Processing a String One Word at a Time
查看>>
Linux 下查看系统是32位 还是64 位的方法
查看>>
MySQL 引擎 和 InnoDB并发控制 简介
查看>>
Dave Python 练习二
查看>>
.net知识体系
查看>>
第二章 第五节 获取帮助
查看>>
关于源代码及其管理工具的总结
查看>>
此文对你人生会有莫大好处的,建议永久保存 2013-07-26 11:04 476人阅读 评论(0) ...
查看>>
JQuery怎样返回前一页
查看>>
Best Time to Buy and Sell Stock
查看>>
Web服务器的原理
查看>>
记录ok6410 jlink 命令行调试uboot
查看>>
ASP.net 内置对象
查看>>
QT使用mysql
查看>>
判断有无网
查看>>
ASP.NET简介
查看>>
php开发环境搭建
查看>>