| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1353 人关注过本帖
标题:函数模板问题,程序能运行,但是不能正常排序
只看楼主 加入收藏
jioper
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-10-21
结帖率:70%
收藏
 问题点数:0 回复次数:3 
函数模板问题,程序能运行,但是不能正常排序
要求是用函数模板做比较n个数据的大小,但是我输入完了以后程序直接退出,并不排序,看了半天不知道为什么,求大神帮助
#include<iostream>
using namespace std;
template<typename T>            
T paixu(T*a,int n)                    
{
     for(int i=0;i<n;i++){              
         for(int j=0;j<n;j++){
                if(a[i]<a[j]){
                         T temp=a[i];
                         a[i]=a[j];
                         a[j]=temp;
                }
         }
     }
      for(int i=0;i<n;i++)  
          cout<<a[i]<<endl;
      return 0;
}
int main()
{
     int n;
     cout<<"输入所需数据个数"<<endl;
     cin>>n;
     int *p=new int [n];
     cout<<"输入比较的数据"<<endl;
     for(int i=0;i<n;i++)
         cin>>p[i];      
     paixu(p,n);                                 
     return 0;
}
搜索更多相关主题的帖子: include 
2017-03-23 11:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
直接退出,并不排序

“并不排序”--- 你怎么知道没有排序?你说过“直接退出”,那么有没有可能是输出后立即退出了,只是你来不及看到而已?
“直接退出”--- 程序结束了,当然应该直接退出。

虽然你的排序算法是错的,但输出并没有问题。
瞎猜猜吧,你可能是按F5调试运行的,也可能是双击直接运行程序的。
若是,建议要么按CTRL+F5运行,要么在cmd.exe中运行。
2017-03-23 12:22
jioper
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2016-10-21
收藏
得分:0 
回复 2楼 rjsp
确实如您所说,谢谢啦。另外排序算法错在哪里了?您能指正一下吗?谢谢啦
2017-03-23 14:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
以下是引用jioper在2017-3-23 14:53:25的发言:

确实如您所说,谢谢啦。另外排序算法错在哪里了?您能指正一下吗?谢谢啦

选择排序的比较次数应该是 n(n-1)/2 次
而你的比较次数是 n*n 次,结果虽然没错,但算法是0分还是100分就看你老师的态度了

程序代码:
template<typename T>
void mysort( T* a, size_t n )
{
    for( size_t i=0; i!=n; ++i ) {
        for( size_t j=i+1; j!=n; ++j ) {
            if( a[i] > a[j] ) {
                T temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
}

2017-03-23 15:27
快速回复:函数模板问题,程序能运行,但是不能正常排序
数据加载中...
 
   



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

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