本文共 1485 字,大约阅读时间需要 4 分钟。
实验要求
1.不得使用STL 2.需使用类模板(template) 3.需定义排序类,封装各排序方法 4.排序数据需要使用动态数组存储 5.排序类需提供以下操作:名次排序、及时终止的选择排序、及时终止的冒泡排序、插入排序用任意一种排序方式给出n个整数按升序排序后的结果
输入 输入的第一行是一个整数n(1<=n<=1000),表示序排序数的个数,接下来一行是n个整数,数的范围是0到1000,每两个相邻数据间用一个空格分隔 输出 一行排好序的序列 例如 输入 5 5 4 3 2 1 输出 1 2 3 4 5#includeusing namespace std;template class Sort{ //定义排序类 public: Sort(int n);//构造函数 ~Sort(){ };//析构函数,可以为空 void swap(T *x,T *y);//交换函数,也可以定义为外部函数 bool bubble(T *a,int n); void rearrange(T *a,int n,int r[]); void selectionSort(T *a,int n);//及时终止的选择排序 void Bubble(T a[],int n);//及时终止的冒泡函数 void insert(T *a,int n);//插入排序 private: int n1;//构造函数的初始化值};template Sort ::Sort(int n){ if (n< 0) n1= 0; else n1= n;}template void Sort ::swap(T *x,T *y){ int temp; temp=*x; x=y; *y=temp;}template bool Sort ::bubble(T *a,int n){ bool swapped=false; for(int i=0;i a[i+1]){ Sort ::swap(a[i,a[i+1]]); swapped=true; } return swapped;}//名次排序 template void Sort ::rearrange(T *a,int n,int r[]){ T *u=new T [n]; for (int i=0;i void Sort ::selectionSort(T *a,int n){ bool sorted=false; for(int size=n;!sorted && (size>1);size--){ int indexOfMax=0; sorted=true; for(int i=1;i ::swap(a[indexOfMax],a[size-1]); }}//及时终止的冒泡排序 template void Sort ::Bubble(T a[],int n){ for (int i=n;i>1&& Sort ::bubble(a,i);i--); } //插入排序 template void Sort ::insert(T *a,int n){ for (int i=1;i =0 && t
转载地址:http://ffwzi.baihongyu.com/