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

📄 xuanze.txt

📁 数据结构的c++实现,源代码全部在C++builder中运行.第7部分
💻 TXT
字号:
//通用选择排序法xuanze.cpp
#include<iostream.h>
#include<iomanip.h>
#define N 10
typedef int(*isgreat)(void *this_num,void *next_num);
void gensort(void *base,int n,int elemsize,isgreat great)
{int i,j,k;
 for(i=0;i<n-1;i++)
 {k=i;char *this_num=(char *)base+k*elemsize;
  char *that=this_num;
  for(j=i+1;j<n;j++)
   {char *next_num=(char *)base+j*elemsize;
    if(great(that,next_num)>0) that=next_num;
   }
  if(this_num!=that)
   {for(int k=0;k<elemsize;k++)
     {char temp=this_num[k];
       this_num[k]=that[k];
       that[k]=temp;
     }
   }
 }
}
int greatint(void *first,void *second)
  {return (*(int *)first>*(int *)second);}
int greatdouble(void *first,void *second)
  {return (*(double *)first>*(double *)second);}
//通用选择排序法测试
void main()
{cout<<"xuanze.cpp运行结果:\n";
 int ai[N],i,m;
 for(i=0;i<N;i++)
  ai[i]=random(89+i)%100;
 cout<<"排序前数组:\n";
 for(i=0;i<N;i++)
  cout<<setw(4)<<ai[i];cout<<endl;
 gensort(ai,sizeof(ai)/sizeof(int),sizeof(int),greatint);
 cout<<"排序后数组:\n";
 for(i=0;i<N;i++)
  cout<<setw(4)<<ai[i];cout<<endl;
 double bf[N];
 for(i=0;i<N;i++)
  bf[i]=random(289+i)/200.0;
 cout<<setiosflags(ios::fixed);
 cout<<"排序前数组:\n";
 for(i=0;i<N;i++)
  cout<<setprecision(2)<<setw(6)<<bf[i];cout<<endl;
 gensort(bf,sizeof(bf)/sizeof(double),sizeof(double),greatdouble);
 cout<<"排序后数组:\n";
 for(i=0;i<N;i++)
  cout<<setprecision(2)<<setw(6)<<bf[i];
 cout<<endl;cin.get();}
xuanze.cpp运行结果:
排序前数组:
  19  24  49  68  27  63  51  30  16  93
排序后数组:
  16  19  24  27  30  49  51  63  68  93
排序前数组:
  0.75  1.22  0.94  0.62  0.56  0.19  0.24  1.27  0.16  1.49
排序后数组:
  0.16  0.19  0.24  0.56  0.62  0.75  0.94  1.22  1.27  1.49

⌨️ 快捷键说明

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