Java教程

排序算法---交换排序

本文主要是介绍排序算法---交换排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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!!! 进行下次判断
			}
	   }
	
   }
	
	
}

这篇关于排序算法---交换排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!