zoukankan      html  css  js  c++  java
  • 归并排序

    它的思想是将一个无序的数组先用递归进行二分,当分解为无限小时,即为单个整数时,再对其进行排列。得出有序的数组

    代码如下:

    package com.jll.sort;

    public class MergeSort {

        public MergeSort() {

        }

        public void merge(int[] a, int start, int finish) {
            if (start == finish)
                return;
            else {
                int mid = (start + finish) / 2;

                merge(a, start, mid);

                merge(a, mid + 1, finish);

                sort(a, start, mid+1 , finish);
            }
        }

        public void sort(int[] a, int begin, int mid, int end) {
            int middle = mid - 1;
            int low = begin;
            int high = end;
            int b[] = new int[a.length];
            int count = 0;
            while (begin <= middle && mid <= end) {
                if (a[begin] <= a[mid]){
                    b[count++] = a[begin++];
                } else {
                    b[count++] = a[mid++];
                }
            }

            while (begin <= middle) {
                b[count++] = a[begin++];
            }
            while (mid <= end) {
                b[count++] = a[mid++];
            }

            for (int i = low; i <= high; i++) {
                a[i] = b[i-low];
            }
        }

        public static void main(String[] args) {
            MergeSort ms = new MergeSort();
            int a[] = new int[10];
            for (int i = 0; i < 10; i++) {
                a[i] = (int) (Math.random() * 100 + 1);
            }

            System.out.println("a:");
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }

            ms.merge(a, 0, 9);

            System.out.println();
            System.out.println("a:");
            for (int i = 0; i < a.length; i++) {
                System.out.print(a[i] + " ");
            }
        }
    }

    里面的代码需要仔细看才能明白其中的道理

  • 相关阅读:
    IIS中ASP.NET安全配置
    好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)
    js取两位小数点
    json格式的ajax传输交互
    js全选与反选
    formdata,ajax提交数据
    js判断是否微信浏览器、IE浏览器
    js实现列表从下往上循环滚动
    绝对定位始终居中
    存储、字符串截取、两端对齐、样式绑定、微信调拨号功能
  • 原文地址:https://www.cnblogs.com/lilyjia/p/3824559.html
Copyright © 2011-2022 走看看