学习笔记

交换排序


冒泡排序:两两交换找出大的值

    public int[] sort(int[] s){

        for(int i=0;i<s.length-1;i++){//外出循环 多少趟
            for (int j=0;j<s.length-1-i;j++ ){  //内层做两两交换,找出最大的数
               if(s[j]>s[j+1]) {
                   int temp = s[j];
                   s[j] = s[j + 1];
                   s[j + 1] = temp;
               }
            }
        }

        return s;

    }

##快速排序 递归 把数组拆成两部分,一边大一边小

    public static void quickSort(int[] arr,int start,int end){
        if(start<end){
            int stard =arr[start]; //对照数

            int low=start;//低指针所在位置

            int high=end;//高指针所在位置

            while (low<high){
                //如果高指针所指的数大于等于对照数
                while (low<high&&arr[high]>=stard){
                    high--;//指针向前移动
                }
                //如果高指针所指的数小于对照数
                arr[low]=arr[high];
                //如果低指针所指的数小于等于对照数
                while (low<high&&arr[low]<=stard){
                    low++;//指针向后移动
                }
                //如果低指针所指的数大于对照数
                arr[high]=arr[low];
            }
            arr[low]=stard;//当循环结束,low=high时,把指针重复位置设置为对照数
            quickSort(arr,start,low);
            quickSort(arr,low+1,end);
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值