⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xuanze4.txt

📁 一本数据结构的经典书籍-数据结构算法程序集里
💻 TXT
字号:
//选择排序法(函数模板)xuanze4.cpp
// 排序不改变原数组各元素的值
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.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,m;
 for(i=0;i<n;i++) q[i]=random(101+i)%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]=random(289+i)/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(6)<<w[i];
 cout<<endl<<"排序后原数组:\n";
 sortp(w,t,a,n);
 for(i=0;i<n;i++)
  cout<<setprecision(2)<<setw(6)<<w[i];
 cout<<endl<<"排序后数组:\n";
 for(i=0;i<n;i++)
  cout<<setprecision(2)<<setw(6)<<*t[i];
 cout<<endl;cin.get();}
xuanze4.cpp运行结果:
排序前数组:
  26  72   2  88  87  11  15  90  59  61
排序后原数组:
  26  72   2  88  87  11  15  90  59  61
排序后数组:
   2  11  15  26  59  61  72  87  88  90
排序前数组:
  1.50  2.44  1.87  1.24  1.12  0.39  0.48  2.54  0.31  2.97
排序后原数组:
  1.50  2.44  1.87  1.24  1.12  0.39  0.48  2.54  0.31  2.97
排序后数组:
  0.31  0.39  0.48  1.12  1.24  1.50  1.87  2.44  2.54  2.97

⌨️ 快捷键说明

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