排序方法--冒泡排序(使用数组实现一串数字的从大到小或从小到大排序)

冒泡排序的基本思想:通过对待排序序列从前向后,依次比较相邻元素的排序码
 *若发现逆序则交换,使排序码较大的元素逐渐从前部移动到后部。(大多注释在代码里)

package com.atcording.java;
/*
 * 数组的冒泡排序的实现
 * 冒泡排序的基本思想:通过对待排序序列从前向后,依次比较相邻元素的排序码
 * 若发现逆序则交换,使排序码较大的元素逐渐从前部移动到后部。
 */
public class BubbleSort {
	public static void main(String[] args){
	int[] arr=new int[]{2,450,63,12,78,92,438,-32,21,79};//定义一个无序数组待排序;
/*
 * 设置两层循环,内层循环每循环一次找出参与循环的最大的数排列在最后位置,
 * 第第二次循环找出次最大的数排列在倒数第二的位置,依次类推,外层循环的目的是确保
 * 内层循环进行的次数(例如十个数字进行从小到大排序,内层循环每执行一次找出一个最大的数字排在最后,
 * 第二次循环找出次最大的数排列在倒数第二的位置,依次类推,要排出十个数字的大小需要进行就此内层循环
 * 所以i<arr.length指内层的循环要进行arr.length-1次,arr.length是指获取数组arr的长度为10)
 */
	 
		for(int i=0;i<arr.length;i++){//i<arr.length指内层的循环要进行arr.length-1次
			
			for( int j=0;j<arr.length-1;j++){
				if(arr[j]>arr[j+1]){
					//相邻两数比较,如果前面的数大于后面的数则交换位置
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
			//内循环每进行一次输出一次结果,便于观察,可注释掉
			System.out.print("内层循环进行第"+(i+1)+"轮的结果如下");
			System.out.println();//换行
			for(int b=0;b<arr.length;b++){
				
				System.out.print(arr[b]+" ");
				}
			System.out.println();//换行
		}
		//输出最后结果
		System.out.print("最终结果如下:");
		System.out.println();//换行
		for(int i=0;i<arr.length;i++){
		System.out.print(arr[i]+" ");
		}
		}
	
}

运行结果如下图所示,通过内层循环进行的每一轮的输出结果便于观察其原理 

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值