冒泡排序
先上我的代码:
public class Hello {
public static void main(String[] args) {
int myArray[]= {21,1,4,3,6,5,7,31,9,10};
int temp; //临时变量
for(int j=0;j<myArray.length;j++) {
for(int i=0;i<myArray.length-1-j;i++) {
if(myArray[i]>myArray[i+1]) {
temp=myArray[i];
myArray[i]=myArray[i+1];
myArray[i+1]=temp;
}
}
System.out.println(myArray[j]);
}
}
}
接下来是我的理解:
冒泡排序:
该算法的核心是将无序的数组通过相邻的两个数,两两比较,得出升序序列或者降序序列。
编码思路:
分两个for循环完成,分为外循环和内循环,先讲内循环,内循环是第一轮循环用第一个元素与第二个进行比较,如果大,就和第二个元素进行位置调换,如果小,直接跳过;第二轮循环用第二个元素与第三个元素进行比较,跟上一轮同理,直至内循环结束,进入外循环。外循环是排序的次数,外循环每循环一次,内循环就会排出一个最大的数组元素放在数组最后的位置。—— i< myArray.length-1-j;意思是内循环数组元素两两对比次数比数组元素最大数小一,每外循环一次,就会排序出最大的数,下一次内循环不用对他进行比较,,所以是myArray.length-1-j。
最后说一下,我是一个学习Java开发的萌新,第一次发博客,写的比较简单,对于算法也是刚开始学,希望各位能够给我指出不足,谢谢。