Java:经典算法之冒泡排序(优化)
1.经典冒泡
public class Test
{
public static void main(String[] args)
{
int []nums = new int[]{
1,5,10,20,16,12,8,4,3};
for (int i = 0 ; i<nums.length-1 ; i++)
{
for(int j = 0 ; j<nums.length-1-i ; j++)
{
if (nums[j]>nums[j+1])
{
int t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
}
}
}
for (int i : nums)
System.out.print(i+" ");
System.out.println();
}
}
2.优化算法
public class Test
{
public static void main(String[] args)
{
int []nums = new int[]{
1,5,10,20,16,12,8,4,3};
boolean flag = true;
for (int i = 0 ; i<nums.length-1 ; i++)
{
for(int j = 0 ; j<nums.length-1-i ; j++)
{
if (nums[j]>nums[j+1])
{
int t = nums[j];
nums[j] = nums[j+1];
nums[j+1] = t;
flag = false;
}
}
if (flag)//一趟排序过后没有任何交换说明数组原本就有序
break;
}
for (int i : nums)
System.out.print(i+" ");
System.out.println();
}
}
有不对的地方欢迎大家提出(博客新手)。