快速排序

hrenlo · · 4716 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

// QuickSort project main.go package main import ( "fmt" "math/rand" "time" ) func main() { var my_slice = make([]int, 0, 100) rand.Seed(int64(time.Now().Nanosecond())) for i := 0; i < 10; i++ { my_slice = append(my_slice, rand.Intn(1001)) } fmt.Println("Before The Quick Sort:") fmt.Println(my_slice) fmt.Println("Sorting......") QuickSort(my_slice, 0, len(my_slice)-1) fmt.Println("OK! Finish!!!") fmt.Println("After The Quick Sort:") fmt.Println(my_slice) } func QuickSort(slice_arg []int, iLeft int, iRight int) { var iIndex = (iLeft + iRight) / 2 var iTmpVal = slice_arg[iIndex] i, j := iLeft, iRight for i < j { fmt.Println("i,j = ", i, j) for i < iIndex && slice_arg[i] < slice_arg[iIndex] { i++ } if i < iIndex { slice_arg[iIndex] = slice_arg[i] iIndex = i } for j > iIndex && slice_arg[j] > slice_arg[iIndex] { j-- } if iIndex < j { slice_arg[iIndex] = slice_arg[j] iIndex = j } } slice_arg[iIndex] = iTmpVal if iIndex-iLeft > 1 { QuickSort(slice_arg, iLeft, iIndex-1) } if iRight-iIndex > 1 { QuickSort(slice_arg, iIndex+1, iRight) } }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4716 次点击  
加入收藏 微博
4 回复  |  直到 2013-07-26 09:41:47
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传