博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sort algorithm
阅读量:6967 次
发布时间:2019-06-27

本文共 1902 字,大约阅读时间需要 6 分钟。

insert sort:

 

 

merge sort:

 

其实很像后续遍历.

package com.java2novice.sorting; public class MyMergeSort {         private int[] array;    private int[] tempMergArr;    private int length;     public static void main(String a[]){                 int[] inputArr = {45,23,11,89,77,98,4,28,65,43};        MyMergeSort mms = new MyMergeSort();        mms.sort(inputArr);        for(int i:inputArr){            System.out.print(i);            System.out.print(" ");        }    }         public void sort(int inputArr[]) {        this.array = inputArr;        this.length = inputArr.length;        this.tempMergArr = new int[length];        doMergeSort(0, length - 1);    }     private void doMergeSort(int lowerIndex, int higherIndex) {                 if (lowerIndex < higherIndex) {            int middle = lowerIndex + (higherIndex - lowerIndex) / 2;            // Below step sorts the left side of the array            doMergeSort(lowerIndex, middle);            // Below step sorts the right side of the array            doMergeSort(middle + 1, higherIndex);            // Now merge both sides            mergeParts(lowerIndex, middle, higherIndex);        }    }     private void mergeParts(int lowerIndex, int middle, int higherIndex) {         for (int i = lowerIndex; i <= higherIndex; i++) {            tempMergArr[i] = array[i];        }        int i = lowerIndex;        int j = middle + 1;        int k = lowerIndex;        while (i <= middle && j <= higherIndex) {            if (tempMergArr[i] <= tempMergArr[j]) {                array[k] = tempMergArr[i];                i++;            } else {                array[k] = tempMergArr[j];                j++;            }            k++;        }        // left always longer than right.        while (i <= middle) {            array[k] = tempMergArr[i];            k++;            i++;        }     }}

 

转载于:https://www.cnblogs.com/leetcode/p/4030115.html

你可能感兴趣的文章
sql取整函数
查看>>
【详解】嵌入式开发中固件的烧录方式
查看>>
2015下半年学习技术任务计划书
查看>>
在线教学、视频会议 Webus Fox(3) 客户端开发手册
查看>>
快速替换dll命名空间 z
查看>>
HDu 2010 水仙花数
查看>>
AIDL Service Android进程间通信机制
查看>>
android Intent.createChooser 应用选择
查看>>
[转]jQuery插件写法总结以及面向对象方式写法
查看>>
Swift - 自定义UIActivity分享
查看>>
递归算法的数据结构和算法 C++和PHP达到
查看>>
Nagios经check_http监视web申请书server多个tomcat维修
查看>>
Intellij IDEA
查看>>
springMVC乱码问题
查看>>
第六章 插入,更新和删除数据
查看>>
在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
查看>>
Js 类定义的几种方式
查看>>
python之模块cmath
查看>>
java 遍历arrayList的四种方法
查看>>
Activiti系列: 如何添加自定义表单引擎
查看>>