冒泡法实现排序
算法:①比较第一个数与第二个数,若a【0】>a【1】,则交换;然后比较后续数字,依次类推;直到第n-1个和第n个数比较为止 第一趟气泡排序,结果最大的数在最后一个元素位置上
②对前n-1个数进行第二趟冒泡排序,结果使次大的数被防在第n-1个元素位置
③重述上述过程,共经过n-1躺冒泡排序后,排序结束
外层循环j(1~n-1)次 内层循环i(1~n-j)次
代码说明:
十个数字比较九轮
①for(j=0;j<9;j++)外层循环
表示轮数,为9是因为每轮比较数字,都会有数字沉底,次数少一轮,是从j=0开始第一轮
②for(i=0;i<9-j;i++) 内层循环
表示次数,一轮里面比较多少次,i=0是第一次比较,每比较完一次,就有一个数字上浮,所以有i=1一直到i小于9-j
两者结合就是,当j=0,第一轮时,i=0,比较a【0】和a【1】两数,若a【0】较大,i=1,比较a【0】与a【2】两数
第一轮 (最后一列为比较完的最终结果) 第二轮 第三轮 第四轮 第五轮
(不知道怎么用文字组织表达我的理解,但是如果不写出来我好像还是理解不了这个玩意md,半懂半不懂的真的是可恶(〃>皿<),说不清楚自己哪里不理解真的要命)
当有6个数字进行冒泡排序,j<5,
j=0进行第一轮比较,6-j即i<6,有5次比较,6个数字相互比较,只用比5次。
j=1时,进行第二轮比较,6-1=5,i<5,剩下5个数字,有4次比较
j=2时,第三轮比较,6-2=4,i<4,剩下4个数字,比较3次
j=3时,第四轮比较,6-3=3,i<3,剩下3个数字,比较两次
j=4时,第五轮比较,6-4=2,i<2,剩下2个数字,比较1次