
冒泡排序核心思想:每次将数组中的最大值放在数组中最后一个位置
优化:在排序的过程判断数组元素的位置有没有交换,如果交换则继续;如果在一次排序中没有发生数组元素交换位置,则说明数组已经有序,停止排序。
代码如下:
package DataStructures.sort;
public class BubbleSort {
public static void main(String[] args) {
int[] nums = {23,25,99,5,1,3};
bubbleSort(nums);
print(nums);
}
public static void bubbleSort(int[] nums){
for( int i = 0; i < nums.length - 1; i++){
boolean flag = false;
for( int j = 0; j < nums.length - i - 1; j++){
if( nums[j] > nums[j+1] ){
flag = true;
int temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
if( !flag ){
break;
}
System.out.printf("第%d趟排序:",i+1);
print(nums);
System.out.println();
}
}
public static void print(int[] nums){
for( int i = 0; i < nums.length; i++){
System.out.print(nums[i]+" ");
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)