我马上大四,实力只能进一些小公司,对一些java的笔试题。开始复习一下。不多了。直接开始了。
什么是排序?排序就是将一个无序序列按某个规则进行有序的排序。
冒泡的排序的本质是?本质就是交换,即每次交换的方式 都是把当前剩余元素的最大值移动到一端。
当剩余元素为0时,就排序结束。(平常的理解为剩下最后一个元素就不用比较了。)
这里就不用画图详细解释了。我附上代码。大家自己纸上走一遍。就理解了。
public class Bubble {
public static void main(String[] args) {
int []array= {4,10,8,6,7};
for(int i=0;i<array.length;i++) {//这里我们排序的是n-1趟排序
//为什么是n-1趟?比如这里是5个数,我们每一趟都当前的最大的数排列在一端。最后一趟就剩下一个一个数了。你就没有必要排序。
for(int j=0;j<array.length-i-1;j++) {//每次排序都是:第i趟都是从array[0]到array[array.length-i-1]都与他们下一个数进行比较的。
if(array[j]>array[j+1]) {
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for(int item:array) {
System.out.println(item);
}
}
}