`
jbm3072
  • 浏览: 211228 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Arrays合并排序算法的实现

阅读更多

下面再来看看Arrays里面的合并排序算法实现。先把完整的源代码贴过来看看

 

 

public static void sort(Object[] a, int fromIndex, int toIndex) {
        rangeCheck(a.length, fromIndex, toIndex);
	Object[] aux = copyOfRange(a, fromIndex, toIndex);
        mergeSort(aux, a, fromIndex, toIndex, -fromIndex);
    }   
 private static void mergeSort(Object[] src,
				  Object[] dest,
				  int low,
				  int high,
				  int off) {
	int length = high - low;

	// Insertion sort on smallest arrays
        if (length < INSERTIONSORT_THRESHOLD/*=7*/) {
            for (int i=low; i<high; i++)
                for (int j=i; j>low &&
			 ((Comparable) dest[j-1]).compareTo(dest[j])>0; j--)
                    swap(dest, j, j-1);
            return;
        }

        // Recursively sort halves of dest into src
        int destLow  = low;
        int destHigh = high;
        low  += off;
        high += off;
        int mid = (low + high) >>> 1;
        mergeSort(dest, src, low, mid, -off);
        mergeSort(dest, src, mid, high, -off);

        // If list is already sorted, just copy from src to dest.  This is an
        // optimization that results in faster sorts for nearly ordered lists.
        if (((Comparable)src[mid-1]).compareTo(src[mid]) <= 0) {
            System.arraycopy(src, low, dest, destLow, length);
            return;
        }

        // Merge sorted halves (now in src) into dest
        for(int i = destLow, p = low, q = mid; i < destHigh; i++) {
            if (q >= high || p < mid && ((Comparable)src[p]).compareTo(src[q])<=0)
                dest[i] = src[p++];
            else
                dest[i] = src[q++];
        }
    }

 

 

 

 

分享到:
评论

相关推荐

    java十二种排序算法实现源代码(类)

    在Java中实现这些排序算法,通常会用到`Arrays`类中的`sort()`方法,以及自定义的比较器`Comparator`。通过编写不同的比较逻辑,可以实现各种排序需求。此外,理解这些算法的工作原理,有助于在实际开发中选择最合适...

    java 8种排序算法

    在Java中,这些排序算法都可以用代码实现,可以通过`java.util.Arrays.sort()`方法使用内置的快速排序或归并排序,也可以自定义排序逻辑。在`AllSort`这个压缩包中,可能包含了这八种排序算法的Java实现代码,通过...

    常见的八大排序算法及其JAVA实现

    本篇文章将深入探讨八大常见的排序算法,并提供它们在Java语言中的具体实现。这八大排序算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序以及计数排序。 1. 冒泡排序(Bubble Sort):...

    Java-各种排序算法

    Java的`java.util.Arrays.sort()`方法默认使用了Timsort,这是一种改良的合并排序算法,具有很好的稳定性。 5. **快速排序**:快速排序由C.A.R. Hoare提出,是目前应用最广泛的排序算法之一。它选取一个“基准”...

    Java各种排序算法代码

    了解和掌握这些排序算法的原理和实现方式,不仅有助于编写高效的排序代码,还能帮助我们在面对实际问题时选择最合适的解决方案。在学习过程中,可以结合实际例子,通过编写代码来加深理解,同时通过分析时间复杂度和...

    Java排序算法包 支持自定义比较条件

    - Java排序算法包可能包含了上述的多种排序算法实现,用户可以根据数据规模、数据特点以及性能要求选择合适的算法。 - 如果需要排序的对象有复杂的比较规则,自定义`Comparator`是一个很好的解决方案。 总的来说...

    基于Java的不同排序算法的实现及其性能比较

    Java提供了`java.util.Arrays.sort()`方法,内部实现了TimSort,这是一种混合排序算法,结合了插入排序和归并排序的优点,能在很多情况下提供良好的性能。 总的来说,理解并熟练掌握不同的排序算法对于提升程序的...

    java 8大排序算法

    在Java编程语言中,排序算法是数据结构与算法...在实际编程中,Java集合框架中的`Collections.sort()`和`Arrays.sort()`方法已经为我们提供了排序功能,但了解底层的排序算法原理,有助于我们更好地理解和优化代码。

    JAVA排序汇总 java应用中一些比较经典的排序算法

    在Java中实现这些排序算法时,通常会使用数组作为数据结构,通过定义辅助方法如`swap()`来进行元素交换,`printArray()`用于输出排序结果。例如,`bubbleSort()`函数展示了冒泡排序的具体实现,根据参数`sortType`...

    常用各种排序算法Java的实现_差不多了__.rar

    在Java中,除了使用上述基本排序算法,还可以使用内置的`Arrays.sort()`方法,该方法内部实现了高效的TimSort算法,适用于处理大数据集,具有稳定性,并且在数据部分有序的情况下表现出色。 这个压缩文件中的".htm"...

    8中排序算法(java实现)

    Java作为流行的编程语言,提供了丰富的内置排序方法,如Arrays.sort(),但对于特定需求,自定义排序算法的实现也是必要的。通过理解并掌握这些排序算法,可以提升编程能力,更好地解决实际问题。

    常用排序算法分析与实现(Java版)

    ### 常用排序算法分析与实现(Java版) #### 插入排序 **1. 直接插入排序** 直接插入排序是一种简单的排序方法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并...

    排序算法的Java实现

    在编程领域,排序算法是计算机科学中的核心概念,特别是在数据结构和算法分析中。...在实际开发中,还可以考虑结合Java的内置排序函数`Arrays.sort()`,它使用了一种高效的混合排序算法,可以处理各种数据类型。

    Java排序算法 Java排序算法.rar

    在编程领域,排序算法是计算机科学中的核心...在Java中,可以使用内置的`Arrays.sort()`或`Collections.sort()`方法,它们底层实现了高效的排序算法,如TimSort,一种混合排序算法,具有稳定性且在实际应用中表现出色。

    各种排序算法java实现

    这篇博客"各种排序算法java实现"可能详细介绍了如何使用Java来实现这些算法。虽然没有提供具体的博客内容,但我们可以根据常见的排序算法来探讨相关的知识点。 1. **冒泡排序**: 冒泡排序是最基础的排序算法,...

    java各自排序算法的实现

    在Java编程语言中,排序算法是数据结构与算法学习中的重要组成部分。它们用于对数组、列表或其他可迭代...在Java中,`Arrays.sort()`方法使用了一种混合排序算法,结合了快速排序和插入排序的优点,适用于大多数情况。

    排序算法-java实现

    在计算机科学中,排序算法是数据处理的重要组成部分,主要用于对一组数据进行有序排列。...同时,Java的Collections.sort()和Arrays.sort()方法在底层使用了高效的排序算法,通常无需手动实现排序,除非有特殊需求。

    Java排序算法,常用算法集代码

    这个压缩包文件提供了Java实现的常见排序算法,对于初学者和有经验的开发者来说,都是一个宝贵的资源。 首先,让我们了解一下排序算法的基本概念。排序算法是一种能将一串数据按照特定顺序进行排列的算法。常见的...

    java sort排序算法实例完整代码

    总结,Java的`sort`排序算法通过高效的TimSort算法实现了稳定且高效的排序,不仅适用于基本类型数组和对象数组,还广泛应用于`List`类型的集合排序。通过自定义`Comparator`,可以满足各种复杂的排序需求。在实际...

Global site tag (gtag.js) - Google Analytics