1、概念:给定一个数组,让数组升序(降序)排序 2、思路:以升序为例升序,将数组中相邻元素从前往后依次进行排序,若前一个元素比后一个大,则交换,一趟下来最大的元素在数
1、概念:给定一个数组,让数组升序(降序)排序
2、思路:以升序为例升序,将数组中相邻元素从前往后依次进行排序,若前一个元素比后一个大,则交换,一趟下来最大的元素在数组末尾
3、图解分析:
(1)i=0:如下图所示第一趟内部循环结束,j共循环了四次,j=3。当j=0时,array[0]=10;array[1]=5;10>5,执行array[j]=array[j+1]数组变为{5,10,3,7,6}。以下所有循环和交换如上
(2)i=1:代码内部循环3次,j=2时已停止。
(3)i=2:第3趟的内部循环就结束了,因为如果再往下执行,就要操作7了,但是7我们在第2趟的时候已经操作过了。在第3趟的内部循环中,是操作了6在倒数第3位的位置,我们发现内部循环j执行了2次,到j= 1时候停止。 数据早就排序好了,但是代码不知道,所以继续第4趟。
(4)i=3:因为我们要操作的是5这个数字,和3比较完之后,就已经在原来正确的位置了,所以循环结束。在第4趟的内部循环中,是操作了5在倒数第4位的位置,我们发现内部循环j执行了1次,到j=0时候停止。
4、代码:
运行结果: