美文网首页
刷题(11)各种排序算法

刷题(11)各种排序算法

作者: MuMuMiu | 来源:发表于2022-01-11 10:18 被阅读0次

    把各种排序算法实现一遍

    1. quick sort:

    public void quick_sort(int[] arr, int low, int high) {

            if(low<high){

                int p = partition(arr, low, high);

                quick_sort(arr, low, p - 1);

                quick_sort(arr, p + 1, high);

            }

        }

        private void swap(int[] arr, int value1, int value2) {

            int temp = arr[value1];

            arr[value1] = arr[value2];

            arr[value2] = arrtemp;

        }

        private int partition(int[] arr, int low, int high) {

            int p = low;

            int j = low+1;

            while(j<=high) {

                if(arr[j]<arr[low]){

                    swap(arr, ++p, j);

                }

                j++;

            }

            swap(arr, low, p);

            return p;

        }

    2. merge sort

    public void merge_sort(int[] arr) {

            int n = arr.length;

            if(n<2) {

                return;

            }

            int mid = n/2;

            int[] leftPart = new int[mid];

            int[] rightPart = new int[n-mid];

            for(int i=0;i<mid;i++) {

                leftPart[i] = arr[i];

            }

            for(int i = mid;i<n;i++) {

                rightPart[i - mid] = arr[i];

            }

            merge_sort(leftPart, mid);

            merge_sort(rightPart, mid);

            merge(arr, leftPart, rightPart);

        }

        private void merge(int[] arr, int[] left, int[] right) {

            int a = arr.length, m = left.length, n = right.length;

            int i = 0, j =  0, k =0;

            while(i<m && j< n) {

                if(left[m] < right[n]) {

                    a[k++] = left[i++];

                } else {

                    a[k++] = right[j++];

                }

            }

            while(i<m) {

                a[k++] = left[i++];

            }

            while(j<n) {

                a[k++] = right[j++];

            }

        }

    ---还有几种待续

    相关文章

      网友评论

          本文标题:刷题(11)各种排序算法

          本文链接:https://www.haomeiwen.com/subject/vjamcrtx.html