冒泡排序
第一轮
可知第一轮过去一定能得到最大值。由此得出n个元素的排序需要比较n-1轮。
每一轮的比较次数:
即每一轮比较次数=数组长度-轮数
主要代码
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-i-1; j++) {
if(array[j]>array[j+1]) {
int temp;
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
延展
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12] 输出: [1,3,12,0,0]
public class Task_010104_002_5 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sr = new Scanner(System.in);
System.out.println("请输入创建的数组中包含元素个数:");
int length = sr.nextInt();
int[] array = new int[length];
System.out.println("请依次输入数组中元素");
for(int i = 0; i < length ;i++ ) {
array[i]=sr.nextInt();
}
//沿用了冒泡排序的思想
//如果元素为零则与后面元素交换位置
//直到后面的数字数字也为0为止
for (int i = 0; i < length-1; i++) {
for (int j = 0; j < array.length-i-1; j++) {
if(array[j]==0) {
if(array[j+1]!=0) {
array[j]=array[j+1];
array[j+1]=0;
}
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}
输出结果: