public static void main(String[] args) {
/* - -冒泡排序
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。
走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),
就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。*/
// 冒泡排序 从小到大
int[] arr = { 5, 101, 978, 43, 45, 64, 1, 65 };
//需要经过多少次【冒泡】才能完成排序?假设数组个数为n n-1次 【外循环】
for(int o=0;o<arr.length-1;o++) {//outside
System.out.printf("这是第%d次冒泡---\n",(o+1));
//每一次冒泡需要经过多少次比较?假设数组个数为n 第i次冒泡 n-i次 【内循环】
for(int i=0;i<arr.length-o-1;i++) {//inside
System.out.printf("%d-%d "+Arrays.toString(arr),i,(i+1));
//判断【前面比后面大】
if(arr[i]>arr[i+1]) {
//交换【】
int item = arr[i];
arr[i] = arr[i+1];
arr[i+1] = item;
//交换后输出
System.out.print("----> "+Arrays.toString(arr));
}
//换行
System.out.println();
}
}
//打印数组
// System.out.println(Arrays.toString(arr));
}
Java冒泡排序
最新推荐文章于 2025-04-20 19:16:04 发布