A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


还有什么排序常用的嘛?
import java.util.Arrays;
class Paixu
{
        public static void main(String[] args)
        {
                int[] arr={1,3,4,2,6,5,8};
                System.out.println("排序前:");
                print(arr);//打印数组
                System.out.println("选择排序后:");
                selectSort(arr);//选择排序
                print(arr);//打印数组
                System.out.println("冒泡排序后:");
                bubbleSort(arr);//冒泡排序
                print(arr);//打印数组
                System.out.println("Arrays类中sort()排序后:");
                Arrays.sort(arr);//升序排序
                print(arr);//打印数组
        }
        //选择排序:一个元素和它后面每个元素进行比较 如果符合条件换位
        public static void selectSort(int[] arr){
                for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[i]的位子
                        for(int j=i+1;j<arr.length;j++){//内层循环控制一趟比较多少[arr.length]次 i+1让每次比较的元素减少
                                if(arr[i]>arr[j]){//一个元素[i]和后面的所有元素[j=i+1]比较   从小到大
                                        swap(arr,i,j);//调用方法交换两个数
                                }
                        }
                }
        }
        //冒泡排序: 相邻两个元素进行比较,如果符合条件换位
        public static void bubbleSort(int[] arr){
                for(int i=0;i<arr.length-1;i++){//外层控制比较[arr.length-1]趟 每趟比较都会产生一个最值在[arr.length-1-i]的位子
                        for(int j=0;j<arr.length-1-i;j++){//内层循环控制一趟比较多少次[arr.length-1-i]  -i让每次比较的元素减少  -1避免数组下标越界
                                if(arr[j]<arr[j+1]){//相邻两个元素[j][j+1]进行比较    从大到小
                                        swap(arr,j,j+1);//调用方法交换两个数
                                }
                        }
                }
        }
        //交换两个数 定义第三方变量
        public static void swap(int[] arr,int a,int b){
                int temp=arr[a];
                arr[a]=arr[b];
                arr[b]=temp;
        }
        //打印数组
        public static void print(int[] arr){
                System.out.print("[");
                for(int i=0;i<arr.length;i++){
                        if(i!=arr.length-1){
                                System.out.print(arr[i]+",");
                        }else{
                                System.out.println(arr[i]+"]");
                        }       
                }
               
        }
}


2 个回复

倒序浏览
最常用的也就这两个,能熟练掌握再好不过了。
回复 使用道具 举报
不错不错…
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马