算法代码实现之三向切分快速排序,Golang(Go语言)实现
2016-02-29 21:34
1181 查看
封装成函数:
[/code]
测试:
输出:
[9065821743]
[0123456789]
//三向切分快速排序
funcThreeWayQuickSort(s[]int){
sort3way(s,0,len(s)-1)
}
//在lt之前的(lo~lt-1)都小于中间值
//在gt之前的(gt+1~hi)都大于中间值
//在lt~i-1的都等于中间值
//在i~gt的都还不确定(最终i会大于gt,即不确定的将不复存在)
funcsort3way(s[]int,lo,hiint){
iflo>=hi{
return
}
v,lt,i,gt:=s[lo],lo,lo+1,hi
fori<=gt{
ifs[i]<v{
swap(s,i,lt)
lt++
i++
}elseifs[i]>v{
swap(s,i,gt)
gt--
}else{
i++
}
}
sort3way(s,lo,lt-1)
sort3way(s,gt+1,hi)
}
funcswap(s[]int,iint,jint){
s[i],s[j]=s[j],s[i]
}
[/code]
测试:
s:=[]int{9,0,6,5,8,2,1,7,4,3}
fmt.Println(s)
ThreeWayQuickSort(s)
fmt.Println(s)
输出:
[9065821743]
[0123456789]
相关文章推荐
- [HDU3966]Aragorn's Story(树链剖分)
- hdu 3966 Aragorn's Story
- 【全排列】next_permutation函数 【algorithm】
- Django学习-01
- 算法代码实现之快速排序,Golang(Go语言)实现
- 我读Mongoose源码----程序框架
- django 模块 template(filter)
- 删除GoldenGate
- mongoengine 查询
- mongoengine 常用类型
- 原创翻译:James Whittaker系列——Google是如何测试的(4)
- 【Google Earth】pro之视频录制
- Leangoo:用敏捷开发管理思维做团队协作的SaaS软件
- 第1周周赛——开学第一课(题解)——出自(Codeforces Good Bye 2015 和 HDU1717)
- Django Xadmin安装
- 下定决心博客搬家(再见csdn,For my oschina!)本博客不再更新,请访问my.oschina.net/tantexian,Thanks dear csdn, goodbye!
- Django 开发服务器启动时发生Error: [Errno 10013] 1错误
- Django~Test View
- Codeforces 196 D. The Next Good String
- go语言值得学习的开源项目推荐