归并排序

总的来说就是使用递归,分两步:

1.将初始序列划分成由n个长度为1的已排子序列组成,本题是对半分下去,直至元素个数为1,类似二分法。

2.两两子序列合并成已排序列,直至合并成初始数组。


public class MergeSort {
    //将有二个有序数列a[first...mid]和a[mid...last]合并。 
    static void mergearray(int a[], int first, int mid, int last, int[] temp) {


        int i = first, j = mid + 1;
        int m = mid, n = last;
        int k = 0;


        while (i <= m && j <= n) {
            if (a[i] <= a[j])
                temp[k++] = a[i++];
            else
                temp[k++] = a[j++];
        }
        //如果从mid到last的数据已经遍历完毕,将first到mid剩余的数据拷贝至sorted
        while (i <= m) {
            temp[k++] = a[i++];
        }
        //如果从first到mid的数据已经遍历完毕,将mid到last剩余的数据拷贝至sorted
        while (j <= n) {
            temp[k++] = a[j++];
        }
        //至此,temp[]为有序的数组
        //更改a[]中first至last元素顺序,使其排序
        for (i = 0; i < k; i++) {
            a[first + i] = temp[i];
        }
    }


    static void mergesort(int a[], int first, int last, int temp[]) {
        if (first < last) {
            int mid = (first + last) / 2;
            mergesort(a, first, mid, temp); //递归,将数组切割至最小(1个元素)
            mergesort(a, mid + 1, last, temp); //同上
            mergearray(a, first, mid, last, temp); //再将相邻的二个元素合并、排序,往上递归,直至最后合并成一个最大的有序数组 
        }
    }


    public static void main(String[] args) {
            int[] list = {5,3,8,4,6,7,2,1};  
            int[] temp = new int[list.length];
            MergeSort as = new MergeSort();
            as.mergesort(list, 0, list.length - 1,temp);
            for(int i=0;i<list.length;i++)  
            {  
                System.out.print(list[i]);  
            }  
        }
    }


**描述:“适用于JDK8的环境”** 本文将深入探讨Neo4j社区版3.5.6版本,这是一个基于图数据库的强大工具,特别适用于知识图谱构建和可视化。由于其运行需求,必须在Java Development Kit(JDK)8的环境下进行安装和操作。 **一、Neo4j概述** Neo4j是一款开源的图形数据库,它以节点、关系和属性的形式存储数据,这使得处理复杂网络结构的数据变得更为直观和高效。Neo4j社区版是免费的,适合开发和学习用途,而企业版则提供了更多的高级功能和服务。 **二、JDK8要求** 为了运行Neo4j 3.5.6,你需要在你的计算机上安装JDK8。JDK是Java开发工具包,包含了运行Java应用程序所需的Java虚拟机(JVM)以及一系列开发工具。确保安装的是与Neo4j版本兼容的JDK版本至关重要,因为不兼容的JDK可能会导致运行错误或性能问题。 **三、安装和配置** 1. **下载与解压**: 从官方渠道下载"neo4j-community-3.5.6.zip"压缩文件,并将其解压到你选择的目录。 2. **环境变量配置**: 配置系统环境变量,将Neo4j的bin目录添加到PATH环境变量中,以便于命令行启动和管理数据库。 3. **修改配置文件**: Neo4j的配置主要通过`conf/neo4j.conf`文件进行,如需更改默认设置,如内存分配、端口设置等,应在此文件中进行修改。 4. **启动和停止**: 使用`neo4j console`命令启动服务,`neo4j stop`命令关闭服务。 **四、知识图谱与可视化** Neo4j因其强大的图数据模型,成为构建知识图谱的理想选择。你可以使用Cypher查询语言来操作和查询图数据,它的语法简洁且直观,易于学习。 1. **Cypher语言**: Cypher是一种声明式、图形化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值