通过跳过内循环中的元素来优化冒泡排序

请帮助我理解这两种优化冒泡排序方法背后的逻辑:


方法一

public static void MyBubbleSort()

{


    for (int i=0; i<list.length; i++)

    {

        boolean is_sorted = true;

        for (int j=0; j<list.length-1; j++)

        {

            if (list[j]>list[j+1])


            {


                    int a = list[j];

                    list[j]=list[j+1];

                    list[j+1]=a;

                    is_sorted = false;

                System.out.println ("Ascending order:"+Arrays.toString(list))} 

方法二

在这里,我不明白 -i 在内部循环中在做什么。


 public static void MyBubbleSort()

{


    for (int i=0; i<list.length; i++)

    {


        for (int j=0; j<list.length-1-i; j++) // <-- here

        {

            if (list[j]>list[j+1])


            {


                    int a = list[j];

                    list[j]=list[j+1];

                    list[j+1]=a;


                System.out.println ("Ascending order:"+Arrays.toString(list));


呼唤远方
浏览 123回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java