/*
*算法思想:
* 两两比较待排序元素的关键字,发现他们次序相反时即进行交换,直到没有逆序
* 元素为止。
*/
/*
*过程分析:
* 冒泡排序中参与比较的总是相邻的关键字r[i]与r[i+1],若是逆序则交换,直到
* 某一趟排序中没有出现元素交换,排序结束。
*/
/*
*性能分析:
* 时间复杂度O(n^2)
*/
#include <stdio.h>
#define length 9
void BubbleSort(int *order)
{
int i=0,j=0,change=1;//change用于记录该趟排序中是否出现元素交换
for(i=0;i<length && change;++i)
{
change=0;
for(j=0;j<length-1-i;++j)
if(order[j]>order[j+1])
{
int temp=order[j];
order[j]=order[j+1];
order[j+1]=temp;
change=1;
}
}
}
int main()
{
int order[length]={0,49,52,65,97,35,13,27,49};
BubbleSort(order);
int i;
for(i=0;i<length;i++)printf("%d ",order[i]);
return 0;
}
交换排序——冒泡排序
最新推荐文章于 2024-11-10 22:32:21 发布