• java实现快速排序


    运用“挖坑法”实现java的快速排序
    //定义一个快排的类
    class QuickSorts{
        //快速排序方法,传入所要排序的数组
        public void quickSort(int[] arr){
            subQuickSort(arr,0,arr.length-1);
        }
        //递归的去不断划分小的排序范围
        public void subQuickSort(int[] arr, int start, int end){
            if(start>=end){
                return;
            }
            int midNum = subQuickSortCore(arr,start,end);
            subQuickSort(arr,start,midNum-1);
            subQuickSort(arr,midNum+1,end);
        }
        //计算出每一次的中间值
        public int subQuickSortCore(int[] arr,int start,int end){
            //将数组第一个数当成中间值的初始值
            int midNum = arr[start];
            while(start<end){
                //当数组最后一位大于或者等于midNum时,end向前移动
                while(arr[end] >= midNum && start<end){
                    end--;
                }
                //当end所对应的值小于midNum时,将end的值赋值给start
                arr[start] = arr[end];
                //当数组start对应的数小于或者等于midNum时,start向后移动
                while (arr[start] <= midNum && start<end){
                    start++;
                }
                //当start所对应的值大于midNum时,将start的值赋值给end
                arr[end] = arr[start];
            }
            arr[start] = midNum;
            return start;
        }
    }
    //测试类
    public class QuickSort {
        public static void main(String[] args) {
            int[] arr = {0,4,6,8,7,5,3,2,9,1};
            QuickSorts quickSort = new QuickSorts();
            quickSort.quickSort(arr);
            for (int i:arr
                 ) {
                System.out.print(arr[i]+"、");
    
            }
        }
    }

    运行结果图:

  • 相关阅读:
    拼图
    事件处理和手势
    分栏控制器2
    分栏控制器
    数据保存
    常用小控件
    导航
    人人界面按钮,页面跳转,传值
    TextField
    image
  • 原文地址:https://www.cnblogs.com/yishengPan/p/10577097.html
Copyright © 2020-2023  润新知