| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 885 人关注过本帖
标题:想用递归进行整数大小排序 一直不能排序 帮我看看
只看楼主 加入收藏
honghong88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-16
结帖率:50%
收藏
已结贴  问题点数:3 回复次数:7 
想用递归进行整数大小排序 一直不能排序 帮我看看
#include <iostream>
using namespace std;
int main()

{void swap(int a[10],int n);
    int num[10],i;
    cout <<"input";
for(i=0;i<10;i++)
cin>>num[i];

swap (num,9);


}



void swap (int a[10],int n)
{int j=0,k,i;



if( a[j]>a[j+1] )
{ k=a[j+1];
a[j+1]=a[j];
a[j]=k;

 j++;
 if(j<n)   
swap(a ,n );

for(i=0;i<10;i++)
{cout<<a[i];
cout<<endl;
}

}

}


红的这1段应该是实现 把数组中 最大 的一个 放到最后一个 但是 但是没实现不知道为什么呢
搜索更多相关主题的帖子: include 
2011-11-18 20:31
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:1 
就你写得这个垃圾程序看都不爱看!

愿用余生致力编程
2011-11-18 20:56
rcy12345678
Rank: 1
等 级:新手上路
帖 子:2
专家分:1
注 册:2011-11-16
收藏
得分:1 
回复 2楼 我菜119
你写个好的来看哈也!拽啥子拽。
2011-11-18 22:45
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
收藏
得分:1 
#include <iostream>
using namespace std;
int main()

{
    void swap(int a[10],int n);
    int num[10],i;
    cout <<"input";
for(i=0;i<10;i++)
cin>>num[i];

swap (num,10);
return 0;

}



void swap (int a[10],int n)
{int j,k,i;


for(j=0;j<n;j++)
for(i=n-1;i>j;i--)
{
if( a[i]<a[i-1] )
{ k=a[i-1];
a[i-1]=a[i];
a[i]=k;
}

}

for(i=0;i<10;i++)
{cout<<a[i]<<"\t";

}
cout<<endl;


}
说实话你写的程序确实不是很好,我只在你编的基础上改的,良好的编程习惯还是要养成的
2011-11-18 23:04
honghong88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2011-10-16
收藏
得分:0 
回复 4楼 yukeyyo
哈哈 我在调试用递归的方法写呢  
你看我的方法
#include <iostream>
using namespace std;
#define NULL 0     
   
                    
int main()
{void swap(int a[10],int n );
    int a[10],i;
for(i=0;i<10;i++)
{cout<<"请出入整数"<<i+1<<" ";
cin>>a[i];}

swap(a,9 );
for(i=0;i<10;i++)
cout<<"排好序的数为";
cout<<a[i]<<" ";
}


void swap(int a[10],int n )
{int i,k;

for(i=0;i<n; i++ )
{if(a[i]>a[n] )
 {k=a[n];
a[n]=a[i];
a[i]=k;
 }
}
n--;
if(n>1)
swap(a,n );



}


2011-11-19 19:45
yukeyyo
Rank: 2
等 级:论坛游民
帖 子:22
专家分:14
注 册:2011-11-18
收藏
得分:0 
回复 5楼 honghong88
你是不是没运行过?
把错误都弄好了再叫别个看你的程序好不好

[ 本帖最后由 yukeyyo 于 2011-11-20 20:52 编辑 ]
2011-11-19 22:14
jj7412530
Rank: 2
等 级:论坛游民
帖 子:19
专家分:40
注 册:2011-9-20
收藏
得分:1 
递归就要让n有所变化才有可能退出递归....
2011-11-22 00:30
lqsh
Rank: 2
来 自:山东济南
等 级:论坛游民
帖 子:26
专家分:58
注 册:2011-8-29
收藏
得分:1 
程序代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int MAX=10;
class Qsort
{
private:
    int a[MAX];
    int size;
public:
    Qsort():size(0)
    {
        memset(a,0,sizeof(a));
    }
    Qsort(int n)
    {
        size=n;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];
        }
    }
    int partion(int low,int hight);
    void qsortarray(int low,int hight);
    void print();
};
void Qsort:: print()
{
    for(int i=0;i<size;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<endl;
}
int Qsort:: partion(int low,int hight)
{
  int perkey=a[low];
  while(low<hight)
  {
      while(low<hight&&perkey<=a[hight])
      {
          hight--;
      }
      a[low]=a[hight];
      while(low<hight&&perkey>=a[low])
      {
          low++;
      }
      a[hight]=a[low];
  }
  a[low]=perkey;
  return low;
}
void Qsort:: qsortarray(int low,int hight)
{
    if(low<hight)
    {
        int porsition=partion(low,hight);
        qsortarray(low,porsition-1);
        qsortarray(porsition+1,hight);
    }
}
int main()
{

    int n;
    cin>>n;
    Qsort q(4);
    q.qsortarray(0,n-1);
    q.print();
    return 0;

}

快速排序是对冒泡排序的一种改进。运用递归思想,不知道是不是符合你的要求
2011-11-22 18:18
快速回复:想用递归进行整数大小排序 一直不能排序 帮我看看
数据加载中...
 
   



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

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