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

快速排序算法

阅读更多

    快速排序属于交换排序的一种,前面说的堆排序属于选择排序。快速排序是冒泡排序的改进版,基本思想是:通过一趟排序,将待排元素分割成两个部分,一部分的元素都比另一部分的元素大或者小,分别对这两个序列继续进行排序,可以得到一个有序序列。

    排序过程:1.随机选取一个key,把所有的元素跟key比较,根据大小分别移动到对应的序列(比如大的交换到key的后面,小的交换到key的前面)2.分别对被key分割的前后两个序列再进行1的分割操作直到序列不可再分。

快速排序java代码片段,sort(int start,int end,int[] ls)方法体内容:

        int i = start;
        int j = end;
        int index = start + r.nextInt(end - start + 1);
        int key = ls[index];
        swap(ls, index, i); 
        while(i < j)
        {
            while(ls[j] >= key && i < j)
            {
                j--;
            }
            if(i < j)
            {
                swap(ls, i, j);
            }
            while(ls[i] <= key && i < j)
            {
                i++;
            }
            if(i < j)
            {
                swap(ls, i, j);
            }
        }
        if(start < i-1)
        {
            sort(start, i-1, ls);
        }
        if(i+1 < end)
        {
            sort(i+1, end, ls);
        }

     快速排序在某种程度上可以认为是最佳排序算法,实现简单,效率不低,在O(nlogn)数据量级的随机序列排序中的平均性能是最好的。但最差效率会蜕变成冒泡排序。实际使用实情况而定

分享到:
评论

相关推荐

    Python实现快速排序算法

    用python实现经典的快速排序算法,运用递归和分治思想实现,代码简洁高效,易于理解。

    C语言实现快速排序算法

    "C语言实现快速排序算法" 快速排序算法是由C. A. R. Hoare在1962年提出的一种高效的排序算法。该算法采用了分治策略,将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,...

    FPGA并行快速排序算法-位宽可设

    在本文中,我们将深入探讨基于FPGA的并行快速排序算法,特别关注“位宽可设”的特性。这种算法能够高效地处理大量数据,并且在硬件实现上具有很高的灵活性。我们将从以下几个方面来阐述这个主题: 一、快速排序算法...

    快速排序算法快速排序算法PDF

    快速排序 快速排序(Quicksort)是对冒泡排序的一种改进。由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按...

    快速排序算法示例.rar

    快速排序算法自1960年由英国计算机科学家托尼·霍尔提出以来,已成为排序算法中的一种经典。该算法以其高效的排序速度和简洁的实现原理,广泛应用于各类数据处理和计算机科学领域。为了深入理解快速排序算法,本文将...

    快速排序算法实现.docx

    快速排序算法实现 快速排序算法是一种高效的排序算法,基于 Divide and Conquer 策略,通过选择一个基准元素,partition数组,使得左侧元素小于基准,右侧元素大于基准,然后递归地对左侧和右侧元素进行排序。 ...

    快速排序算法python.rar

    以下是一个简单的Python快速排序算法示例: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] middle = [x for x in arr if x == pivot] ...

    最快速看懂快速排序算法

    快速排序算法通过多次比较和交换来实现排序,其排序流程如下: 1、首先设定一个分界值,通过该分界值将数组分成左右两部分。 2、将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时...

    指针在快速排序算法中的关键作用

    指针在快速排序算法中发挥着至关重要的作用。它们不仅帮助我们高效地进行数组的分区操作,还使得算法能够以递归的方式优雅地处理子数组。快速排序的效率和性能在很大程度上依赖于指针的正确使用和管理。 本文详细...

    算法设计与分析快速排序算法

    算法的学习,分治

    java实现快速排序算法

    quickSort 方法实现了快速排序算法。通过选取一个基准值,将数组划分为左右两个子数组,并递归调用快速排序对子数组进行排序。在 partition 方法中,我们选择最右边的元素作为基准值,然后使用双指针进行比较和交换...

    c语言 数据结构 快速排序算法

    c语言版本的数据结构的快速排序算法,适用于新手学习

    分别使用Java和Python实现快速排序算法.zip

    快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法.zip 快速排序:分别使用Java和Python实现快速排序算法....

    c语言实现快速排序算法

    c语言实现快速排序算法

    快速排序算法代码分治法

    这个代码是利用快速排序算法,求第K大的数。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后...

    Java 快速排序算法

    Java 快速排序,目前来说效率很高的一种排序算法,好理解。

    快速排序算法C语言实现与优化.pdf

    ### 快速排序算法C语言实现与优化 #### 一、快速排序算法的基本原理 快速排序算法是一种基于分治策略的高效排序算法。其基本思想是通过一趟排序将待排序的记录分隔成独立的两部分,其中一部分的所有记录比另一部分...

Global site tag (gtag.js) - Google Analytics