排序算法--冒泡排序(Java实现)

1.冒泡排序思想

    1.比较相邻的两个元素,如果第一个元素大于第二个元素,就交换位置
    2.对每一对相邻的元素再做同样的比较,从最开始的一对到结尾的一对完成全部的比较。最后一个元素肯定最大的
    3.对剩下的元素重复第二步操作,直到只有一个元素为止

【百度百科】

        冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

        它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

        这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

2.编码实现

package com.lll.datastructure.sort;

import java.util.Arrays;

/**
 * 
* @ClassName: BubbleSortTest
* @Description: 冒泡排序
* @Author: liulianglin
* @DateTime 2022年9月6日 下午7:49:17
* 
* 算法思想:
	1.比较相邻的两个元素,如果第一个元素大于第二个元素,就交换位置
	2.对每一对相邻的元素再做同样的比较,从最开始的一对到结尾的一对完成全部的比较。最后一个元素肯定最大的
	3.对剩下的元素重复第二步操作,直到只有一个元素为止
 */
public class BubbleSortTest {
	public static void main(String[] args) {
		int[] arr = {12,3,33,11,32,9,8,5};
		System.out.println("排序前:" + Arrays.toString(arr));

		// 控制循环趟数
		for (int i=0; i < arr.length-1; i++) {
			// 是否发生交换
			boolean isSwap = false;
			for (int j=0; j arr[j+1]) {
                    // 进行交换
					int tmp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = tmp;
					isSwap = true;
				}
			}
			System.out.println("第"+i+"次:"+Arrays.toString(arr));
			if (!isSwap) {
				// 如果没有发生交换,则说明已经是有序的了,不用再进行额外的排序,做无用功
				break;
			}
		}
		
		
	}
}

执行结果:

 排序算法--冒泡排序(Java实现)_第1张图片

 

 

你可能感兴趣的:(数据结构与算法,排序算法,java,算法)