冒泡排序的基本思想:两两相邻记录的关键字,如果反序则交换,知道没有反序的记录为止。
1.两两注意是相邻的两个元素的意思
2.如果有n个元素需要比较n-1次,每一轮减少1次比较,每一轮减少一次
普通冒泡排序:
#include<stdio.h>
void BibbleSort(int k[],int n)
{
int i,j,temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(k[i]>k[j])
{
temp=k[j-1];
k[j-1]=k[j];
k[j]=temp;
}
}
}
}
int main()
{
int i,a[10]={4,3,54,2,3,575,5454,13,44,1};
BibbleSort(a,10);
printf("排序后:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
经典冒泡排序:
#include<stdio.h>
void BibbleSort(int k[],int n)
{
int i,j,temp,flag=1;
for(i=0;i<n-1 && flag;i++)
{
for(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 i,a[10]={4,3,54,2,3,575,5454,13,44,1};
BibbleSort(a,10);
printf("排序后:");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}