当前位置: 首页 > news >正文

网站建设做网站费用阿里云域名注册官网网址

网站建设做网站费用,阿里云域名注册官网网址,做营销看的网站,招聘网站建设快速排序的Go实现 这一部分参考了AcWing当中使用Go语言实现快速排序的题解:https://www.acwing.com/activity/content/code/content/296206/。 其中有很多部分非常值得参考,故写一个博客进行记录。 Code package mainimport "fmt"func qui…

快速排序的Go实现

这一部分参考了AcWing当中使用Go语言实现快速排序的题解:https://www.acwing.com/activity/content/code/content/296206/。

其中有很多部分非常值得参考,故写一个博客进行记录。

Code

package mainimport "fmt"func quick_sort(q []int, l, r int) {if l >= r {return}x := q[l+(r-l)/2]i, j := l-1, r+1for i < j {for i++; q[i] < x; i++ {}for j--; q[j] > x; j-- {}if i < j {q[i], q[j] = q[j], q[i]}}quick_sort(q, l, j)quick_sort(q, j+1, r)
}func main() {var n intfmt.Scanf("%d", &n)q := make([]int, n+5)for i := 1; i <= n; i++ {fmt.Scanf("%d", &q[i])}quick_sort(q, 1, n)for i := 1; i <= n; i++ {fmt.Printf("%d ", q[i])}return
}
  • 首先,对于大部分只需要标准输入输出的算法题,只需要导入fmt包即可,fmt可以完成标准的输入输出。使用fmt.Scanf("%d", &n)完成数组长度n的输入,使用fmt.scanf("%d, &q[i])来完成数组当中元素的输入。
  • 其次,在创建长度为n的数组时,可以使用Go当中的make方法,第一个参数是类型,即int[],而第二个参数是长度,由于我使用的下标从1开始,因此此处创建数组的长度比n稍大,避免越界。
  • 使用fmt.Prinf("%d", q[i])完成数组的遍历输出。
  • 在quick_sort部分,可以看到i, j := l-1, r+1q[i], q[j] = q[j], q[i]这样的语句,Go语言可以像Python那样一次为多个变量进行赋值,其中q[i], q[j] = q[j], q[i]直接完成了C++当中的swap操作。
  • for i++; q[i] < x; i++ {} 操作直接等价于C++当中的do{i ++;} while(q[i] < x),注意Go语言当中没有do... while...的用法,可以使用上述for循环进行替代,Go语言中只有for一种循环语句,但是它是非常灵活的。
  • 在快速排序选取哨兵结点时,必须使用x := q[l+(r-l)/2],否则会报错。
  • 需要注意的是,在AcWing的OJ中,Go语言实现的快排执行时间来到了4900+ms,而C++版本实现的快排仅需要100+ms,差距非常大,说明C++的效率非常的高。
http://www.ds6.com.cn/news/38136.html

相关文章:

  • 网站建设的现状和趋势诊断网站seo现状的方法
  • 深圳网站建设的费用企业建站 平台
  • 广告设计专业介绍嘉兴百度seo
  • 大学生创新项目申报书 做网站sem竞价托管价格
  • 克隆网站首页做单页站几个文件如何优化网站快速排名
  • 品牌网站建设绿d茶哪里有整站优化
  • 西藏做网站广州竞价托管公司
  • 怎么做网站和服务器吗优化设计五年级上册语文答案
  • 网站建设人员配置是怎样的重庆seo什么意思
  • 做棋牌网站违法嘛杭州seo按天计费
  • 网站的折线图怎么做建网站需要什么条件
  • 视觉设计和平面设计的区别高手优化网站
  • 国外对旅游网站建设的现状最有效的推广方法
  • 西北电力建设甘肃工程公司网站排名优化怎么做
  • 时时彩网站建设一条龙企业网站排名优化价格
  • 自己建设一个网站需要多少钱佛山网站建设方案咨询
  • 微信小程序案例源码评论优化
  • 装修公司走心文案百度关键词在线优化
  • 泉州最专业手机网站建设哪家好宁波seo怎么推广
  • wordpress的登录页面模板下载seo网络优化前景怎么样
  • 郑州动力无限网站建设百度新闻网
  • 做网站用什么开发工具好怎么免费制作网站
  • 网页设计实验总结报告电子商务沙盘seo关键词
  • 12306网站学生做线上培训平台
  • 企业网站管理系统设计报告百度高级搜索指令
  • 网站建设两个方面百度秒收录排名软件
  • 网站的关键词搜索怎么做湖南优化推广
  • 荆州seo优化重庆网站seo搜索引擎优化
  • 医疗手机网站建设seo视频教程百度云
  • 郎溪做网站推广方案流程