0
点赞
收藏
分享

微信扫一扫

排序算法---交换排序

春意暖洋洋 2022-03-19 阅读 47

1.1冒泡排序

1.1.1基本介绍:

冒泡排序(Bubble Sorting)的基本思想是:通过将排序序列从前向后从下标小的元素开始,依次比较相邻元素的值,若发现逆序则交换,使得值相对较大的元素逐渐从前移动到后,像是水里的泡泡一样沉得往下落,轻的向上冒。

优化:当如果其中一趟冒泡排序没有进行交换时,则说明序列有序,此时就无需在进行排序。也就是说可以在排序过程中设置一个标志flag判断元素是否进行过叫唤。从而提升排序效率。

1.1.2代码实现:

package DataStructure;

import java.util.Arrays;

public class BubbleSort {

	public static void main(String[] args) {
		int[] num = {20,9,-1,20,49};
		BubbleSort(num);
		System.out.println(Arrays.toString(num));
		
		
		

	}
	
	public static void BubbleSort(int[] array) { 
		//冒泡排序的时间复杂度一般为O(n²)
		int temp = 0;
		boolean flag = false;//标识变量 表示是否进行交换
		for(int i=0;i<array.length-1;i++){
			for(int j=0;j<array.length-1-i;j++) {
				if(array[j]>array[j+1]) {
					flag = true;
					 temp=array[j];
					array[j] = array[j+1];
					array[j+1] = temp;
					
				}
			}
			if(!flag) {//该趟排序中 没有发生交换
				break;
			}else {
				flag = false;//重置flag!!! 进行下次判断
			}
	   }
	
   }
	
	
}
举报

相关推荐

0 条评论