当前位置: 代码迷 >> C语言 >> 问个小白的问题.
  详细解决方案

问个小白的问题.

热度:241   发布时间:2008-06-02 21:37:18.0
[bo][un]liyanhong[/un] 在 2008-6-2 21:07 的发言:[/bo]

谢谢LS
让我知道了  减少临时变量会比原来效率更差


位运算会比临时变量效率差? ...
----------------解决方案--------------------------------------------------------
Orz...偶知道原因了。。。。。。。

[color=white]
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-02 13:46:34
Loli

来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
  得分:0 
#define SWAP(a,b) (&a!=&b ? a^=b^=a^=b : 0)
楼主你这样改吧

[color=white]
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-02 14:03:12
sunkaidong

来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4493
专家分:141
注 册:2006-12-28
  得分:0 
我的交换比你少一半..
#include <iostream>   
#define SWAP(a,b) {int c=a;a=b;b=c;}
using namespace std;
const int N=11;
int Mv[N]={12,34,1,1,10,8,5,101,15,9,58};

int Partition(int iLow,int iHigh){
    int iKey=Mv[iLow];
    int j=iLow;
    while(1)
    {
        while(Mv[iLow]<=iKey&&iLow<=iHigh) iLow++;
        while(Mv[iHigh]>iKey&&iLow<=iHigh) iHigh--;
        if(iLow<iHigh)
        {SWAP(Mv[iLow],Mv[iHigh])}
        else
            break;
    }
    SWAP(Mv[j],Mv[iLow-1])
    return iLow-1;
}

void QuickSort(int iLow,int iHigh){ //[0-(n-1)]
    if(iLow<iHigh)
    {
        int p=Partition(iLow,iHigh);
        QuickSort(iLow,p-1);
        QuickSort(p+1,iHigh);
    }
}

void ShowMv(){
    int i;
    for(i=0;i<N-1;++i)
        cout<<Mv[i]<<" ";
    cout<<Mv[i];
}

int main(){
    QuickSort(0,N-1);
    ShowMv();
    return 0;
}
----------------解决方案--------------------------------------------------------
  相关解决方案