求C++置换选择排序算法的源代码!!

外排序初始游程的生成
外排序中分为两步:初始游程的生成和有序文件的合并。请实现算法模拟初始游程的生成。假定系统中只能对规模为p的元素进行排序,现给定m个元素(m>p),对m个元素进行处理,给出所生成的若干个有序的初始游程。
要求:
(1) p的大小和m个待处理数据均存放在文件input.txt中;
(2) 输出的若干个初始游程存放在文件output.txt中。

#include<iostream>
  using namespace std;
  int main()
  {
  int num[10] = {9,8,10,3,4,6,4,7,2,1};
  cout<<"排序前:"<<endl;
  for (int m = 0;m < 10;m++)
  {
  cout<<num[m]<<" ";
  }
  for (int i = 0;i < 9;i++)
  {
  int pos = i;
  for (int j = i+1;j < 10;j++)
  {
  if (num[pos] > num[j])
  {
  pos = j;
  }
  }
  int tem;
  tem = num[pos];
  num[pos] = num[i];
  num[i] = tem;
  }
  cout<<endl<<"排序后:"<<endl;
  for (int m = 0;m < 10;m++)
  {
  cout<<num[m]<<" ";
  }
  return 0;
  }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-30
下面的sort函数就是插入排序函数(直接插入排序),给你做了一个main函数进行验证

#include<iostream>
#include<iomanip>
using namespace std;
void sort(int a[],int n)//直接插入排序(从小到大)
{
int r;//r是“哨兵”
for(int i=1;i<n;i++)
if(a[i]<a[i-1])
{
r=a[i];
a[i]=a[i-1];
for(int j=i-1;r<a[j];j--)a[j+1]=a[j];
a[j+1]=r;
}
}
void main()
{
int a[10]=;
sort(a,10);
for(int i=0;i<10;i++)cout<<setw(4)<<a[i];
cout<<endl;
}
第2个回答  2011-07-06
下面的sort函数就是插入排序函数(直接插入排序),给你做了一个main函数进行验证

#include<iostream>
#include<iomanip>
using namespace std;
void sort(int a[],int n)//直接插入排序(从小到大)
{
int r;//r是“哨兵”
for(int i=1;i<n;i++)
if(a[i]<a[i-1])
{
r=a[i];
a[i]=a[i-1];
for(int j=i-1;r<a[j];j--)a[j+1]=a[j];
a[j+1]=r;
}
}
void main()
{
int a[10]=;
sort(a,10);
for(int i=0;i<10;i++)cout<<setw(4)<<a[i];
cout<<endl;
}
另外,虚机团上产品团购,超级便宜
相似回答