Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341965
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:03:12

我的邮箱地址;wjy-20@hotmail.com

我的邮箱地址;wjy-20@hotmail.com

我的邮箱地址;wjy-20@hotmail.com

我的邮箱地址;wjy-20@hotmail.com

我的邮箱地址;wjy-20@hotmail.com



选择法排序的基本思想:
 第1轮从待排序序列中选出“数据值”最小的元素作为有序序列的第1个元素;
 第2轮从剩下的元素中选出最小元素作为有序序列的第2个元素;依次类推,直到元素全部排序。
【要求】
1.模仿此程序,编写冒泡法排序函数模板BubbleSort;
2.利用函数模板BubbleSort,对student类数组按成绩排序;
      类student定义如下所示:
      class student
      {
          int id;//学号,设从1401060101开始编号
          char name[12];
          int score;//成绩
       public:
          //此处定义若干必要的成员函数和运算符重载函数;
       };
3.为方便对student类对象操作,可能还需要重载<、[]、<<、>>等运算符。

选择法排序函数模板及实现的参考源程序如下:
#include
#include //strlen()

template
void SelectSort(T* p,int n)
{
int i,j,temp;
T t;
for (i=0;i {
temp=i;
for (j=i;j if (p[j] t=p[i];
p[i]=p[temp];
p[temp]=t;
}
}

template
void Print(T *p,int n)
{
for (int i=0;i cout< cout<}

void main()
{
int const N=5;
int ia[N];
double da[N];
char ca[]="swoyiqebm";
cout<<"请输入"< for (int m=0;m cin>>ia[m];
cout<<"请输入"< for (m=0;m cin>>da[m];
cout<<"\n排序前,字符数组为:"< cout<<"排序前,整型数组为:";
Print(ia,N);
cout<<"排序前,实型数组为:";
Print(da,N);
m=strlen(ca);
SelectSort(ca,m); //字符数组排序
SelectSort(ia,N); //整型数组排序
SelectSort(da,N); //实型数组排序
cout<<"\n排序后,字符数组为:"< cout<<"排序后,整型数组为:";
Print(ia,N);
cout<<"排序后,实型数组为:";
Print(da,N);
cout<}
【程序运行示例】
请输入5个整数:8 0 -3 12 2
请输入5个实数:22.5 0.6 -16 8.8 4.3

排序前,字符数组为:swoyiqebm
排序前,整型数组为:8  0  -3  12  2
排序前,实型数组为:22.5  0.6  -16  8.8  4.3

排序后,字符数组为:beimoqswy
排序后,整型数组为:-3  0  2  8  12
排序后,实型数组为:-16  0.6  4.3  8.8  22.5



--------------------next---------------------

阅读(1018) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~