`
darklipeng
  • 浏览: 126176 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

python实现快速排序法

阅读更多

以中轴分左右区的快速排序法:

# -*- coding: utf-8 -*-
class QuickSort:
    def sort(self,list,left,right):
        if(left<right):
            s=list[(left+right)/2]
            i=left
            j=right
            while(True):
                while(list[i]<s):
                    i+=1
                while(list[j]>s):
                    j-=1
                if(i>=j):
                    break
                self.swap(list,i,j)   
            self.sort(list,left,i-1)
            self.sort(list,j+1,right)
        else:
             return
            
    def swap(self,list,i,j):
        t=list[i]
        list[i]=list[j]
        list[j]=t

print 'begin:'
l=[32,32,34,43,66,65,67,31,77,54,100,42]
l=list(set(l))#防止队列中含有重复数
print l
q=QuickSort()
q.sort(l,0,len(l)-1)
print l

分享到:
评论

相关推荐

    Python实现快速排序.rar

    在这个Python实现的压缩包中,包含了一个名为"Python实现快速排序.py"的文件,我们可以深入探讨一下快速排序的原理以及如何用Python来实现它。 快速排序的步骤如下: 1. **选择枢轴元素(Pivot Selection)**:从...

    快速排序 --- 非递归实现

    在非递归实现快速排序时,通常会用到栈来保存每次划分的子数组范围。在这个案例中,`mt_stack.cpp`、`mt_stack.h`可能包含了自定义栈的实现,用于存储子数组的起始和结束索引。栈的数据结构使得我们可以按照后进先出...

    python实现快速排序的几种方法.docx

    ### Python 实现快速排序的几种方法 #### 快速排序算法概述 快速排序是一种非常高效的排序算法,由英国计算机科学家托尼·霍尔(Tony Hoare)于1960年提出。它采用分治法策略来把一个序列分为较小和较大的两个子...

    Python3实现快速排序(源代码)

    这段代码展示了如何使用Python3实现快速排序。需要注意的是,这种实现方式在处理大数据集时效率较低,因为它在每次分割时都会重新构建两个列表。在实际应用中,推荐使用**原地排序**的方法,通过交换数组中的元素来...

    基于python实现的快速排序算法.zip

    在Python中实现快速排序,我们可以将其分为以下几个关键步骤: 1. **选择基准元素(Pivot Selection)**:首先,我们需要从数组中选择一个元素作为基准,这个元素将用来划分数组。通常选取第一个或最后一个元素,也...

    通过python实现多种排序算法.rar

    压缩包文件代码是通过Python来实现多种排序算法。这里,将展示几种常见的...快速排序是一种高效的排序算法,采用分治法(Divide and Conquer)策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。

    Python实现归并排序.rar

    例如,如果你有一个包含大量数据的列表,需要快速排序且保持原有的相等元素顺序,那么归并排序就是一个很好的选择。 ### 总结 归并排序是计算机科学中一种经典且高效的排序算法,它的分治思想在许多其他问题中也...

    快速排序算法python实现.zip

    在Python中实现快速排序,我们可以定义一个函数,通常命名为`quick_sort`,这个函数接收一个列表作为参数。快速排序的核心在于选择一个基准元素(pivot)并进行分区操作。以下是快速排序算法的基本步骤: 1. **选择...

    Python快速排序以及其他排序方法集合

    快速排序是一种非常高效的排序算法,其核心思想是分治法。快速排序首先选取一个基准值,然后将数组分为两部分:一部分的所有元素都比基准值小;另一部分的所有元素都比基准值大。接下来对这两部分递归地执行同样的...

    使用快速排序法对一维数组进行排序

    描述中的程序实现了快速排序法,可能是用一种编程语言如C++、Java或Python编写的,用于对一维数组进行排序。这种程序的实现一般包括上述的三个主要步骤,并可能包含优化措施,例如处理小数组时改用插入排序,或者...

    Python实现各种排序借鉴.pdf

    快速排序也是基于分治法,选取一个基准元素,将序列分为小于和大于基准的两部分,然后对这两部分分别进行排序。平均时间复杂度同样是O(nlogn),但最坏情况下为O(n^2)。快速排序通常使用递归,通过一次划分操作将...

    快速排序的算法思想及Python版快速排序的实现示例

    下面是使用Python语言实现的快速排序算法示例代码: ```python #!/usr/bin/env python #_*_coding:utf-8_*_ def rand(x): import random if x x = 5 if x &gt; 1000: print("big data") return [] l = range...

    Python实现经典排序算法.rar

    本资源"Python实现经典排序算法.rar"包含了一系列用Python编写的经典排序算法的源代码,这对于学习和理解排序算法的原理及其在Python中的实现极具价值。 首先,让我们来探讨一下排序算法的基本概念。排序算法是一种...

    基于python-java-C++实现快速排序.zip

    **Python实现快速排序** 在Python中,可以利用内置的`list`和`slice`功能来方便地操作数组。首先,选取一个基准元素,然后用`list.index()`找到它的正确位置,将数组分成两部分。接着,对左右两部分递归调用快速...

    各种排序算法的Python实现

    这里我们将深入探讨标题提及的七种排序算法的Python实现:冒泡排序、堆排序、归并排序、快速排序、选择排序、希尔排序以及直接插入排序。 **冒泡排序**: 冒泡排序是一种简单直观的排序算法,通过不断交换相邻的未...

    Python版数据结构与算法-排序算法源代码,实现了冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序源代码

    6. **快速排序(Quick Sort)**:快速排序也是分治策略的典型应用,选取一个“基准”元素,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素大于基准,然后对这两部分递归进行快速排序。Python实现时,...

    快速排序算法python.rar

    在Python中实现快速排序,通常采用递归方式。以下是一个简单的Python快速排序算法示例: ```python def quick_sort(arr): if len(arr) return arr pivot = arr[len(arr) // 2] left = [x for x in arr if x ] ...

    python冒泡排序 快速排序算法.zip

    冒泡排序和快速排序是两种在计算机科学中广泛使用的排序算法,它们都在Python编程语言中有具体的应用实现。这里我们将深入探讨这两种排序算法的工作原理、优缺点以及如何在Python中实现它们。 **冒泡排序(Bubble ...

    python递归实现快速排序

    在Python中递归地实现快速排序算法,关键点在于定义一个划分函数(partition)和一个递归排序函数(quick_sort)。 划分函数的任务是将一个数组分成两部分,其中一部分的所有元素都不大于(或都大于)基准元素,而...

    用python实现常见6种排序算法

    快速排序的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序。 Python实现代码如下: ```python def ...

Global site tag (gtag.js) - Google Analytics