C语言是比较简单基础的排序方式,排序效率并不高,但是很稳定。
通过rand随机生产10个小于20的数来测试排序。
/******************
* 冒泡排序
******************/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void bubblesortbetter(int *a,int n)//改进
{
for(int i=0;i<n-1;i++)
{
int flag=0;
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
a[j]^=a[j+1];
a[j+1]^=a[j];
a[j]^=a[j+1];
flag=1;
}
}
if(flag==0)
break;
}
}
void bubblesort(int *a,int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
a[j]^=a[j+1];
a[j+1]^=a[j];
a[j]^=a[j+1];
}
}
}
}
int main()
{
int a[10];
srand((unsigned)time(NULL));
printf("排序前:\n");
for(int i=0;i<10;i++)
{
a[i]=rand()%20;
printf("%d ",a[i]);
}
bubblesortbetter(a,10);
// bubblesort(a,10);
printf("\n排序后:\n");
for(int i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}