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

📄 maopao1.cpp

📁 方便大家使用的c版本 算法
💻 CPP
字号:
//通用冒泡排序法(下沉)maopao1.cpp
#include<iostream.h>
#include<iomanip.h>
#include<stdlib.h>
#include<time.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=1;i<n;i++)
  for(j=0;j<n-i;j++)
  {char *this_num=(char *)base+j*elemsize;
   char *next_num=this_num+elemsize;
   if(great(this_num,next_num)>0)
    for(k=0;k<elemsize;k++)
    {char temp=this_num[k];
     this_num[k]=next_num[k];
     next_num[k]=temp;
    }
  }
}
int greatint(void *first,void *second)
 {return (*(int *)first>*(int *)second);}
int greatfloat(void *first,void *second)
 {return (*(float *)first>*(float *)second);}
void main()
{cout<<"maopao1.cpp运行结果:\n";
 int ai[N],i;
 srand(time(0));
 for(i=0;i<N;i++)
  ai[i]=rand()%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;
 float bf[N];
 for(i=0;i<N;i++)
   bf[i]=rand()/200.0;
 cout<<setiosflags(ios::fixed);
 cout<<"排序前数组:\n";
 for(i=0;i<N;i++)
  cout<<setprecision(2)<<setw(7)<<bf[i];
 cout<<endl;
 gensort(bf,sizeof(bf)/sizeof(float),sizeof(float),greatfloat);
 cout<<"排序后数组:\n";
 for(i=0;i<N;i++)
  cout<<setprecision(2)<<setw(7)<<bf[i];
 cout<<endl;cin.get();}






⌨️ 快捷键说明

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