#define Maxsize 300
#include <iostream>
#include <fstream>
using namespace std;
int a[Maxsize];
int num=0;//数字个数
//从文件中读取数据
void Get()
{
fstream file;
file.open("data.txt",ios::in);
if(!file.good())
{
cout<<"文件打开失败"<<endl;
exit(1);
}
file>>num;
for(int i=1;i<=num;i++)
{
file>>a[i];
}//留a[0]做临时空间
file.close();
}
void Print()
{
for(int i=1;i<=num;i++)
{
cout<<a[i]<<' ';
}
cout<<endl;
}
//冒泡
void Bubble()
{
for(int i=1;i<=num;i++)
{
for(int j=1;j<=num-i;j++)
{
if(a[j]>a[j+1])
{
a[0]=a[j];
a[j]=a[j+1];
a[j+1]=a[0];
}
}
}
Print();
}
//快排
int Find(int i,int j)
{
int k=i;//把待排区间的第一位记作目标
a[0]=a[i];
while(i<j)
{
while(i<j&&a[j]>=a[0])
{
j--;
}
while(i<j&&a[i]<=a[0])
{
i++;
}
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
a[k]=a[i];
a[i]=a[0];
return i;
}
void Quicksort(int low,int high)
{
if(low<high)
{
int t=Find(low,high);
Quicksort(low,t-1);
Quicksort(t+1,high);
}
}
int main()
{
Get();
//Bubble();
Quicksort(1,num);
Print();
return 0;
}
排序之交换排序(冒泡排序+快速排序)
最新推荐文章于 2024-07-25 12:55:52 发布