xuanze4.cpp

来自「数据结构算法 vc++6.0 的程序集包含所有章节,适合学习数据结构,把数据结构」· C++ 代码 · 共 52 行

CPP
52
字号
//选择排序法(函数模板)xuanze4.cpp
// 排序不改变原数组各元素的值
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include<stdlib.h>
#include<time.h>
#define M 10
template<class T>
void sortp(T d[],T *pd[],int b[],int size)
{int i,j,k;
 for(i=0;i<size-1;i++)
 {k=i;
  for(j=i+1;j<size;j++)
   if(d[b[k]]>d[b[j]]) k=j;
  if(i!=k)
  {T g;g=b[i];b[i]=b[k];b[k]=g;}}
 for(i=0;i<size;i++) pd[i]=&d[b[i]];
}
void main()
{cout<<"xuanze4.cpp运行结果:\n";
 int q[M],*p[M],a[M],n=M,i;
 srand(time(0));
 for(i=0;i<n;i++) q[i]=rand()%100;
 for(i=0;i<n;i++) {a[i]=i;p[i]=&q[i];}
 cout<<"排序前数组:\n";
 for(i=0;i<n;i++)
  cout<<setw(4)<<q[i];
 cout<<endl<<"排序后原数组:\n";
 sortp(q,p,a,n);
 for(i=0;i<n;i++)
  cout<<setw(4)<<q[i];
 cout<<endl<<"排序后数组:\n";
 for(i=0;i<n;i++)
  cout<<setw(4)<<*p[i];
 cout<<endl;
 float w[M],*t[M];
 cout<<setiosflags(ios::fixed);
 for(i=0;i<n;i++) w[i]=rand()/100.0;
 for(i=0;i<n;i++) {a[i]=i;t[i]=&w[i];}
 cout<<"排序前数组:\n";
 for(i=0;i<n;i++)
  cout<<setprecision(2)<<setw(7)<<w[i];
 cout<<endl<<"排序后原数组:\n";
 sortp(w,t,a,n);
 for(i=0;i<n;i++)
  cout<<setprecision(2)<<setw(7)<<w[i];
 cout<<endl<<"排序后数组:\n";
 for(i=0;i<n;i++)
  cout<<setprecision(2)<<setw(7)<<*t[i];
 cout<<endl;cin.get();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?