| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 676 人关注过本帖
标题:快速排序问题中的交换语句不太明白,恳请大家指点迷津、、
只看楼主 加入收藏
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
快速排序问题中的交换语句不太明白,恳请大家指点迷津、、
程序代码:
#include  <stdio.h>             

void main(){
    int a[10];
    printf("请输入10个数: \n");
    for(int i=0;i<10;i++){

        scanf("%d",&a[i]);
        printf("\n");

    }

    void qsort(int v[],int left,int right);
    qsort(a,0,9);   
    for(int i=0;i<10;i++){
        printf("%d\n",a[i]);

    }

}

void qsort(int v[],int left,int right){

    int i,last;

    void  sweap(int v[],int i,int j);

    if(left>=right)   //判断是否只包含有两个元素

        return ;
    sweap(v,left,(left+right)/2);//交换中间元素和最左边元素

    last=left;//将标志移至0处


    for(i=left+1;i<=right;i++)
        if(v[i]<v[left])
            sweap(v,++last,i);
    /*printf("v[last]的值是多少:\n");
    printf("%d\n",v[last]);*/

    sweap(v,left,last);

    qsort(v,left,last-1);

    qsort(v,last+1,right);



}

void sweap(int v[],int i,int j){

    int temp;
    temp=v[i];
    v[i]=v[j];
    v[j]=temp;


}






  这个程序是没有问题的,可是这里有几个问题我实在想了半天没有弄明白,就是关于last的问题,我根据自己的理解注释了一点点,也不知道对不对,尤其是后面的两个交换语句弄的很是不清楚,sweap(v,++last,i);sweap(v,left,last);不太明白这两句语句到底作用是干什么的?希望各位能够帮忙看一下,试了好多方法,譬如把值打印出来看看,也还是没弄明白。恳请大家帮帮忙啊。
2013-10-29 21:33
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
先不看代码,看快排的算法本身解释,然后落实到代码
收到的鲜花

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-10-30 06:13
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:6 
是的
收到的鲜花
2013-10-30 08:08
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
回复 2楼 pauljames
嗯嗯,好的,谢谢啊,这应该也是一种学习方法,我想我今后也会受益的。
2013-10-30 09:41
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
回复 3楼 tlliqi
嗯嗯 ,明白了,谢谢啊
2013-10-30 09:41
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6814
专家分:42393
注 册:2010-12-16
收藏
得分:7 
维基百科 有快牌等的视图动态演示,非常形象
http://zh.
收到的鲜花

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-30 09:46
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
回复 6楼 yuccn
谢谢啊,呵呵
2013-10-30 09:50
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
谢谢大家的指点,我已经明白了。呵呵
2013-10-30 10:33
a592963144
Rank: 2
等 级:论坛游民
帖 子:41
专家分:95
注 册:2013-9-27
收藏
得分:0 
话说楼主用的什么编译器 我用dev-c++ 和 vc++6.0 都弄不出来。。。。。
2013-10-30 10:36
南国神画
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:51
专家分:124
注 册:2013-10-24
收藏
得分:0 
回复 9楼 a592963144
vs2010啊,呵呵
2013-10-30 10:40
快速回复:快速排序问题中的交换语句不太明白,恳请大家指点迷津、、
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022210 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved