C语言:冒泡排序---详细解释

//冒泡排序数字,仅仅适用于数组无序的时候,若有序则不能使用冒号排序 
   例如:

    数字组:5,54,64,98,47
    /*
    1: 54,64,98,47,5     4次 
    2: 64,98,54,47,5     3次 
    3: 98,64,54,47,5     2次 
    4: 98,64,54,47,5     1次 
    */
    //规律:比较轮数 = N - 1 
    //每轮比较次数 =  N - i - 1 

代码如下:

#include <stdio.h>
#define N 5
int main()
{
	
	int num[N]={87,4,45,3,96} ;
	int i, j;//外层为i,内层为j。
	int temp;//临时存储变量 
	//外层控制轮数
	for(i = 0; i < i; i++)
	{
		//内层控制每轮比较次数
		for(j = 0; j < i; j++)
		{
			if(num[j] > num[j + 1])			
         	//注意!!!!!把 <号 改成 >号 就变成了升序排序 ~ 
			{
				temp = num[j];
				num[j] = num[j + 1];
				num[j + 1] = temp; 
			 } 
		
		 } 
		
	 } 
	printf("排序后的结果为:\n");
	for(i = 0; i < N; i++)
	{
		printf("%d\t", num[i]);
	}
	
	return 0;
}

 运行结果如下:

 

posted @ 2022-03-11 20:45  竹等寒  阅读(7)  评论(0编辑  收藏  举报  来源