阅读背景:

常用排序算法总结---Java实现

来源:互联网 

各个排序总结,和时光,空间庞杂度剖析
一.冒泡排序:

/*
	冒泡排序:
		排序算法思想:进行n-1趟排序,每趟,相邻元素,两两相互比拟,将其中如果前一个元素比后一个元素小
	则令其交流。(最后的成果是,小的往后移(从大到小的冒泡))

*/

class BubleSort 
{
	public static void main(String[] args) 
	{
		int[] arr = {1,4,6,3,7,4,9,8};
		bSort_1(arr);
		for (int a: arr)
		{
			System.out.print(a+".");
		}
	}
	/*
			算法的优化:可以设置一个boolean类型的变,初值为false,如果产生交流,则将其改成true,如果某次
		其值没有变更,仍为false,则可以提早停止。
	*/
	//从大到小的冒泡(外层掌握趟数,内层)
	public static void bSort(int[] arr)
	{
		boolean flag = false;
		for (int i=0;i<arr.length-1 ;i++ )
		{
			flag = false;
			for (int j=0;j<arr.length-i-1 ;j++ )
			{
				if(arr[j]<arr[j+1])
				{
					flag = true;
					swap(arr,j,j+1);
				}
			}
			if(!flag)
				break;
		}
	}

	//从小到大的冒泡(如果前一个数比后一个数大,则进行交流)
	//2 4 6 7 5 3 4
	//7 
	public static void bSort_1(int[] arr)
	{
		boolean flag = false;
		for (int i=0;i<arr.length-1 ;i++ )
		{
			flag = false;
			for (int j=arr.length-1;j>i+1 ;j-- )
			{
				if (arr[j]<arr[j-1])
				{
					flag = true;
					swap(arr,j,j-1);
				}
				if(!flag)
					break;
			}
		}
	}
	public static void swap(int[] arr,int i,int j)
	{
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;
	}
}
/*
	冒泡排序:
		排序算法思想:进行




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: