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

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

  • 相关阅读:
    HTML表单元素
    hadoop编程技巧(3)---定义自己的区划类别Partitioner
    SDUTOJ 2054 双向链表
    serialVersionUID行动
    笔试
    循环队列
    css @media认识
    大约ActionContext.getContext()使用体验
    在希望的田野上--生物柴油(Biodiesel)光明的未来
    SD卡FAT32获得高速的文件格式(图文介绍)
  • 原文地址:https://www.cnblogs.com/lilyjia/p/3824559.html
Copyright © 2011-2022 走看看