#include <iostream>
using namespace std;
void show(int* arr,int n)
{
int i;
for(i=0; i<n-1; i++)
{
cout<<arr[i]<<" ";
}
cout<<arr[i]<<endl;
}
void BubbleSort(int* arr,int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n-i-1; j++)
{
if(arr[j]>arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
void SelectSort(int* arr,int n)
{
for(int i=0; i<n; i++)
{
int k=i;
for(int j=i+1; j<n; j++)
{
if(arr[j]<arr[k])k=j;
}
if(k!=i)
{
int tmp=arr[k];
arr[k]=arr[i];
arr[i]=tmp;
}
}
}
void InsertSort(int* arr,int n)
{
for(int i=1; i<n; i++)
{
int tmp=arr[i];
int j=i-1;
while(j>=0&&arr[j]>tmp)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=tmp;
}
}
void QuickSort(int* arr,int low,int high)
{
if(low<high)
{
int low_mark=low;
int high_mark=high;
int key=arr[low];
while(low<high)
{
while(low<high&&arr[high]>key)
{
high--;
}
arr[low]=arr[high];
while(low<high&&arr[low]<key)
{
low++;
}
arr[high]=arr[low];
}
arr[low]=key;
QuickSort(arr,low_mark,low-1);
QuickSort(arr,low+1,high_mark);
}
}
int main()
{
int n;
cin>>n;
int* arr=new int[n];
for(int i=0; i<n; i++)
{
cin>>arr[i];
}
//BubbleSort(arr,n);
//SelectSort(arr,n);
//InsertSort(arr,n);
QuickSort(arr,0,n-1);
show(arr,n);
return 0;
}
常用排序算法_冒泡,选择,插入,快排
最新推荐文章于 2020-12-05 21:20:02 发布