Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4495
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2014-09-18 11:02
文章分类
文章存档

2014年(4)

我的朋友
最近访客

分类: Java

2014-10-21 14:00:07

quick sort!
每一次取第一个数x,比x小的在左边,比x大的在右边。然后将左右两部分按照前面的方法进行递归。
例如:548610-------->410 5 86------>10 4     5    6 8------>014568

举个例子

如无序数组[6 2 4 1 5 9]

a),先把第一项[6]取出来,

用[6]依次与其余项进行比较,

如果比[6]小就放[6]前边,2 4 1 5都比[6]小,所以全部放到[6]前边

如果比[6]大就放[6]后边,9比[6]大,放到[6]后边,//6出列后大喝一声,比我小的站前边,比我大的站后边,行动吧!霸气十足~

一趟排完后变成下边这样:

排序前 6 2 4 1 5 9

排序后 2 4 1 5 6 9


b),对前半拉[2 4 1 5]继续进行快速排序

重复步骤a)后变成下边这样:

排序前 2 4 1 5

排序后 1 2 4 5

前半拉排序完成,总的排序也完成:

排序前:[6 2 4 1 5 9]

排序后:[1 2 4 5 6 9]

排序结束

阅读(240) | 评论(0) | 转发(0) |
0

上一篇:Address already in use: JVM_Bind错误的解决

下一篇:没有了

给主人留下些什么吧!~~