(Java版)八大排序------冒泡排序

1.基本原理
从头开始比较相邻的两个数,将较大的数放在后面,较小的放在前面。

1.1具体步骤
1)先比较第一个数和第二个数,将较大的数放在后面,较小的放在前面
2)在较第二个数和第三个数,将较大的数放在后面,较小的放在前面
…以此类推…
n)最后比较后两个数,将较大的数放在后面,较小的放在前面

这样这个数组的最大值就成为了最后一位,然后继续对n-1个数按照上述方法执行,以此类推

2.代码演示

          int[] arr = {15102218}

第一次

            		  {10152218}
			 		  {10152218}
					  {10151228}
					  {10151822}//最大数22就在最后了

第二次

            		  {10151822}
					  {10115822}
					  {10181522}//15也冒上来了 

第三次

					  {11081522}
					  {18101522}//10也冒上来了  

第四次

            	      {18101522}//排序完成	  

3.源代码

public class BubbleSort {
	public static void main(String[] args) {

		int arr[] = { 15102218 };
		System.out.println("原数组为:"+Arrays.toString(arr));
		Sort(arr);
		System.out.println("排序后为:"+Arrays.toString(arr));

	}

	public static void Sort(int[] arr) {
		int temp;
		boolean flag = false;
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					flag = true;
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}

			}
			//上述第三次排序其实已经完成,没必要进行第四次
			if (!flag) {// 如果没有交换一次,证明已经排序好了,则退出循环
				break;
			} else {
				flag = false;
			}

		}

	}

}

猜你喜欢

转载自blog.csdn.net/Mrxuanshen/article/details/107884023