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] + " ");
            }
        }
    }

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

  • 相关阅读:
    Mybatis(三)
    Mybatis(二)
    Mybatis
    AJAX的跨域
    AJAX
    EL表达式与标准标签库JSTL
    java无脚本jsp页面-简介
    javaWeb的开发模式
    ADO.Net之SqlConnection、sqlcommand的应用
    翻译1-在SQL Server 2016中介绍微软R服务
  • 原文地址:https://www.cnblogs.com/lilyjia/p/3824559.html
Copyright © 2011-2022 走看看