1.冒泡排序
//冒泡排序
void BubbleSort(int R[],int n)
{
int i,j;
int flag;//在一趟循环过程中为发生交换,则代表已经有序
for(i=1;i<=n;i++){
flag=1;
for(int j=2;j<=n;j++){
if(R[j]<R[j-1]){
swap(R[j],R[j-1]);
flag=0;
}
}
if(flag)
return ;
}
}
2.快速排序
//快速排序
void QuickSort(int R[],int left,int right)
{
int temp;
int l=left,r=right;
if(left<right)
{
temp=R[left];
//将所有比temp大的值移到右边,比temp小的值移到左边
while(l!=r){
//从右往左寻找比当前数小的数,将其交换,移到左侧
while(r>l&&R[r]>temp)
r--;
if(l<r){
swap(R[l],R[r]);
l++;
}
//从左向右寻找比当前数大的数,将其交换,移到右侧
while(r>l&&R[l]<temp)
l++;
if(l<r){
swap(R[l],R[r]);
r--;
}
}
R[l]=temp;//这里l与r相等,为腾出来的空地方
QuickSort(R,left,l-1);
QuickSort(R,l+1,right);
}
}