java中的数组排序(排序-冒泡排序)详解编程语言

两层嵌套循环,外层控制循环次数,内层循环进行比较

for(intx=0;x<arr.length-1;x++){

            for(int y=0;y<arr.length;y++){

                if(arr[y]>arr[y+1]){               

                }

            }

        }

此时的代码有问题,内层循环多比较了已经排好序的部分,都在最后面,需要去掉

        for(int x=0;x<arr.length-1;x++){

            for(int y=0;y<arr.length-x;y++){

                if(arr[y]>arr[y+1]){                  

                }

            }

        }

此时的代码有问题,内层循环最后一个元素,无法和它后面的比较,应该去掉

        for(int x=0;x<arr.length-1;x++){

            for(inty=0;y<arr.length-x-1;y++){

                if(arr[y]>arr[y+1]){

                    

                }

            }

        }

判断完后,两个变量交换位置,利用第三方变量

        for(int x=0;x<arr.length-1;x++){

            for(inty=0;y<arr.length-x-1;y++){

                if(arr[y]>arr[y+1]){

                    int temp=arr[y];

                    arr[y]=arr[y+1];

                    arr[y+1]=temp;

                }

            }

        }

请看java demo:

public classArrayDemo {

    /**

     * @param args

     */

    public static void main(String[] args) {

        int[] arr=new int[]{2,5,4,1};

        int[] newArr=bubbleSort(arr);

        for(int x:newArr){

            System.out.print(x);

        }

    }

    /**

     * 冒泡排序(正序)

     * @param arr

     * @return

     */

    public static int[] bubbleSort(int[] arr){

        for(int x=0;x<arr.length-1;x++){

            for(inty=0;y<arr.length-x-1;y++){

                if(arr[y]>arr[y+1]){

                    int temp=arr[y];

                    arr[y]=arr[y+1];

                    arr[y+1]=temp;

                }

            }

        }

        return arr;

    }

}

java中的数组排序(排序-冒泡排序)详解编程语言

转载请注明来源网站:blog.ytso.com谢谢!

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14935.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论