/*
冒泡排序:
排序算法思想:进行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;
}
}
/*
冒泡排序:
排序算法思想:进行