冒泡排序:两两相邻两个元素进行比较,如果有n个元素需要比较n-1次,并且从下往上两两比较
普通版类冒泡排序:
#include <stdio.h>
void BubbleSort(int k[], int n)
{
int temp;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(k[i]>k[j])
{
temp=k[i];
k[i]=k[j];
k[j]=temp;
}
}
}
}
int main()
{
int a[10] = {2,5,1,3,6,7,4,9,8,0};
BubbleSort(a,10);
printf("打印排序后的数组:");
for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
这种方法每个元素都和其他元素进行了比较不符合两两相比的特点。
冒泡排序:
#include <stdio.h>
void BubbleSort(int k[],int n)
{
int temp;
int flag=1;
for(int i=0;i<n-1&&flag;i++)
{
for(int j=n-1;j>i;j--)
{
flag=0;
if(k[j-1]>k[j])
{
temp=k[j];
k[j]=k[j-1];
k[j-1]=temp;
flag=1;
}
}
}
}
int main()
{
int a[10] = {2,5,1,3,6,7,4,9,8,0};
BubbleSort(a,10);
printf("打印排序后的数组:");
for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}