快速排序其实是冒泡排序的一种改进,冒泡排序每次对相邻的两个数进行比较,而快速排序是分别从两端开始”探测”的,先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。
//快速排序
void Quick_Sort(int *arr,int begin,int end)
{
if(begin>end)
return ;
int t;
int tmp=arr[begin];//选择第一个数位基数
int i=begin;
int j=end;
while(i!=j)
{
while(arr[j]>=temp&&j>i)
j--;
while(arr[i<=temp&&j>i])
i++;
if(j>i)
{
t=arr[i];
arr[i]=arr[j];
arra[j]=t;
}
}//出循环的时候一定是i=j
arr[begin]=arr[i];
arr[i]=tmp;
Quick_Sort(arr,begin,i-1);
Quick_Sort(arr,i+1,end);
}
选择排序优化
//选择排序优化
#include<iostream>
using namespace std;
#define N 10
void Select_Sort(int arr[],int n)//函数的形式参数不需要重新定义
{
int i,j,min,max;
//n=sizeof(arr);
for(i=0;i<n-1;i++)//趟数
{
min=i;
for(j=i;j<n;j++)
{
if(arr[min]>arr[j])
{
min=j;
}
}
if(min!=i)
{
swap(arr[i],arr[min]);
}
}
}
int main()
{
int arr[N]={1,4,6,3,0,2,5,9,8,7};
int i;
Select_Sort(arr,10);
for(i=0;i<N;i++)
{
cout<<arr[i]<<",";
}
cout<<endl;
return 0;
}