设计一个模板函数实现10个数的排序.在线等,今晚结分

zjk2752 2008-12-14 08:28:19
设计一个模板函数实现10个数的排序.在线等,今晚结分
...全文
100 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwypy 2008-12-14
  • 打赏
  • 举报
回复
都是高手啊!学习。
SearchLife 2008-12-14
  • 打赏
  • 举报
回复
up ls
傲世赢麻 2008-12-14
  • 打赏
  • 举报
回复
for(int j=0; j<vec.size()-1; ++j)中
应该是j<vec.size()-i吧?

[Quote=引用 1 楼 qqwx_1986 的回复:]
C/C++ code
#include <iostream>
#include<vector>
using namespace std;
template<typename T>
void bubblesort(vector<T>& vec);
template<typename T>
void insertsort(vector<T>& vec);
int main()
{
int a[10]={3,2,45,6,788,3,21,5,9};
vector<int> vec(a,a+9);
bubblesort(vec);
// insertsort(vec);
for(int i=0;i<vec.size();++i)
cout<<vec[i]<<" ";
cout<<endl;

[/Quote]
zjk2752 2008-12-14
  • 打赏
  • 举报
回复
谢谢各位
zy1691 2008-12-14
  • 打赏
  • 举报
回复
忘了,这是需要的头文件,over

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
zy1691 2008-12-14
  • 打赏
  • 举报
回复
void mysort(CHAR * c)
{
vector<long double> vec;
stringstream ss;
int temp;
ss<<c;
while(!ss.eof())
{
ss>>temp;
vec.push_back( temp );
}
sort(vec.begin(),vec.end());
int s=(long double)vec.size();
for(long double i=0;i<s;i++)
cout << vec[i]<< ' ';
}

随便写了一个,使用像这样

mysort("10 2 5 99 1000");//空格分隔每个数,写多少随你。
nullah 2008-12-14
  • 打赏
  • 举报
回复
汗......
楼上的效率好高
jl443960770 2008-12-14
  • 打赏
  • 举报
回复
用STL中容器中哪个都行
zy1691 2008-12-14
  • 打赏
  • 举报
回复
不用设计吧,直接用sort不就完了
星羽 2008-12-14
  • 打赏
  • 举报
回复

#include "iostream"
using namespace std;

template<typename T>
void select_sort(T* pbegin, T* pend)
{
while (pbegin < pend - 1)
{
T* p = pbegin;

for (T* t = p + 1; t < pend; ++t)
if ((*t) < (*p))
p = t;

swap(*pbegin, *p);
++pbegin;
}
}

int main()
{
int a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
size_t len = sizeof(a) / sizeof(int);

for (size_t i = 0; i < len; ++i)
cout<<a[i]<<" ";
cout<<endl;

select_sort(a, a + len);

for (size_t i = 0; i < len; ++i)
cout<<a[i]<<" ";
cout<<endl;

return 0;
}
----------

9 8 7 6 5 4 3 2 1 0
0 1 2 3 4 5 6 7 8 9








qqwx_1986 2008-12-14
  • 打赏
  • 举报
回复

#include <iostream>
#include<vector>
using namespace std;
template<typename T>
void bubblesort(vector<T>& vec);
template<typename T>
void insertsort(vector<T>& vec);
int main()
{
int a[10]={3,2,45,6,788,3,21,5,9};
vector<int> vec(a,a+9);
bubblesort(vec);
// insertsort(vec);
for(int i=0;i<vec.size();++i)
cout<<vec[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
template<typename T>
void bubblesort(vector<T>& vec)
{
T temp;
for(int i=1; i<vec.size(); ++i)//循环size-1次
{
for(int j=0; j<vec.size()-1; ++j)
{
if(vec[j]>vec[j+1])
{
temp=vec[j];
vec[j]=vec[j+1];
vec[j+1]=temp;
}
}

}
}
template<typename T>
void insertsort(vector<T>& vec)
{
T temp;
int j;
for(int i=1;i<vec.size(); ++i)
{
temp=vec[i];
j=i-1;
while(j>=0 && temp<vec[j])
{
vec[j+1]=vec[j];
--j;
}
vec[j+1]=temp;
}
}

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧