[javaSE] 数组(排序-冒泡排序)

[javaSE] 数组(排序-冒泡排序),第1张

概述两层嵌套循环,外层控制循环次数,内层循环进行比较 此时的代码有问题,内层循环多比较了已经排好序的部分,都在最后面,需要去掉 此时的代码有问题,内层循环最后一个元素,无法和它后面的比较,应该去掉 判断完

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

for@H_301_5@(int@H_301_5@ x=0;x<arr.length-1;x++){            @H_301_5@int@H_301_5@ y=0;y<arr.length;y++){                @H_301_5@if@H_301_5@(arr[y]>arr[y+1]){                                    }            }        }@H_301_5@

 

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

        int@H_301_5@ y=0;y<arr.length-x;y++]){                                    }            }        }@H_301_5@

 

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

        int@H_301_5@ y=0;y<arr.length-x-1;y++]){                                    }            }        }@H_301_5@

 

 

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

        ]){                    @H_301_5@int@H_301_5@ temp=arr[y];                    arr[y]@H_301_5@=arr[y+1];                    arr[y@H_301_5@+1]=temp;                }            }        }@H_301_5@

 

java版:

public@H_301_5@ class@H_301_5@ ArrayDemo {    @H_301_5@/**@H_301_5@     * @H_301_5@@param@H_301_5@ args     @H_301_5@*/@H_301_5@    static@H_301_5@ voID@H_301_5@ main(String[] args) {        @H_301_5@int@H_301_5@[] arr=new@H_301_5@ int@H_301_5@[]{2,5,4,1};        @H_301_5@int@H_301_5@[] newArr=bubbleSort(arr);        @H_301_5@int@H_301_5@ x:newArr){            System.out.print(x);        }    }    @H_301_5@     * 冒泡排序(正序)     * @H_301_5@ arr     * @H_301_5@@return@H_301_5@     int@H_301_5@[] bubbleSort([] arr){        @H_301_5@temp;                }            }        }        @H_301_5@return@H_301_5@ arr;    }}@H_301_5@

PHP版:

<?PHP@H_301_5@ ArrayDemo{    @H_301_5@function@H_301_5@ main(){        @H_301_5@$arr@H_301_5@=array@H_301_5@(2,1)">);        @H_301_5@print_r@H_301_5@(ArrayDemo::bubbleSort($arr@H_301_5@));//@H_301_5@输出 Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )@H_301_5@    }        @H_301_5@/*@H_301_5@*     * 冒泡排序(正序)     * @param arr     * @return     @H_301_5@function@H_301_5@ bubbleSort($arr@H_301_5@){        @H_301_5@for@H_301_5@($x@H_301_5@=0;$x@H_301_5@<count@H_301_5@($arr@H_301_5@)-1;$x@H_301_5@++$y@H_301_5@=0;$y@H_301_5@<$arr@H_301_5@)-$x@H_301_5@-1;$y@H_301_5@++if@H_301_5@($arr@H_301_5@[$y@H_301_5@]>$y@H_301_5@+1]){                    @H_301_5@$temp@H_301_5@=$y@H_301_5@];                    @H_301_5@$y@H_301_5@]=$y@H_301_5@+1]=$temp@H_301_5@;                }            }        }        @H_301_5@return@H_301_5@ ;    }}ArrayDemo@H_301_5@::main();

 

 

选择排序和冒泡排序性能都很低,提高性能的方法,当需要换位置的时候,先不换,先把需要换位置的角标放到栈内存中,等最后一次性在堆内存中交换

排序中最快的是 希尔排序

总结

以上是内存溢出为你收集整理的[javaSE] 数组(排序-冒泡排序)全部内容,希望文章能够帮你解决[javaSE] 数组(排序-冒泡排序)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1154419.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存