您的位置:首页 > 其它

快速排序

2017-02-08 14:28 113 查看
快速排序:

假设有n个数

     à大       ß小

例如:3  4  1  8  2

           i               j

设一个基准数temp=a[0];

i从a[0]开始,j从a[n-1]开始;

从j先向左移动,只要找到比temp小的数,就停下;

然后i向右移动,只要遇到比temp大的数,就停下;

就交换a[i]和a[j]的位置;

 3  2  1 8  4

    i         j

然后重复以上步骤;

3  1 2  8  4

   i   j

2  1 3  8  4

      ij

然后i移动,当i==j时,把a[i]和数组头交换;

(2  1) 3 (8  4)

  i   j       i  j

temp=2   ij temp=8

a[j]<a[i],则交换位置

(1  2) 3 (4  8)

  i   j       i  j

就是这么简单!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  快速排序