数据结构——C语言实现冒泡排序算法

C语言实现冒泡排序算法

1.基本思想:
       从小到大的冒泡排序是每次从头开始,两两比较,将较大的数放在两个数中的后面一位,循环此过程,将最大的数放在最后的位置;接着再从头开始两两比较,找到第二大的数;如果有n个数,则循环n次便能将无序的记录变成有序的记录。
       这个过程存在两层循环,其一,两两比较的循环;其二是“是第几趟的循环”。
2.C语言算法实现:

#include
int r[6]={6,3,7,2,5,4};
void BubbleSort(int length)
{
	int i,j,temp;
	for(j=5;j>=0;j--) //是第j趟循环
		for(i=0;i<j;i++) //在第j趟循环中将每两个数进行比较
		{
			if(r[i]>r[i+1]) //由小到大排序
			{
				temp=r[i]; //将较大的数放在后面
				r[i]=r[i+1];
				r[i+1]=temp;
			}
		}
}
int main()
{
	int i;
	BubbleSort(6);
	for(i=0;i<6;i++)
		printf("%d",r[i]);
}

3.算法分析:
稳定。
最好情况:待排序列是有小到大的顺序;最差情况:逆序。
时间复杂度:O(n²);空间复杂度:O(1)。

你可能感兴趣的:(算法,数据结构,排序算法)