快速排序算法:
#include <iostream>
#include <stack>
using namespace std;
int partition(int arr[],int left,int right)
{
int pivot = arr[left];
while(left<right)
{
while(left<right&&arr[right]>=pivot)
right--;
arr[left]=arr[right];
while(left<right&&arr[left]<=pivot)
left++;
arr[right]=arr[left];
}
arr[left]=pivot;
return left;
}
void quickSort(int arr[],int left,int right)
{
if(left<right)
{
int pivot = partition(arr,left,right);
quickSort(arr,left,pivot-1);
quickSort(arr,pivot+1,right);
}
}
int main()
{
int arr[]={64,34,25,12,22,11,90};
int n=sizeof(arr)/sizeof(arr[0]);
quickSort(arr,0,n-1);
for(int i=0;i<n;i++)
cout<<arr[i]<<" ";
cout<<endl;
return 0;
}
简单排序:
#include <iostream>
#include <algorithm>
using namespace std;
void simple(int arr[],int n)
{
for(int i=0;i<=n;i++)
{
int min=arr[i];
int index=i;
for(int j=i;j<=n;j++)
{
if(arr[j]<min)
{
min=arr[j];
index=j;
}
}
swap(arr[i],arr[index]);
}
}
int main()
{
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
simple(arr,n);
cout << "Sorted array is: \n";
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}