`
darklipeng
  • 浏览: 126330 次
  • 性别: 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实现与解析

    内容概要:本文介绍了经典的快速排序算法及其Python实现。文中详细解释了快速排序的工作机制,即使用分治法的思想,选择基准点后将其划分为左中小三部分,并通过递归方式继续划分直至完成整个序列的排序。此外,还...

    通过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)。 划分函数的任务是将一个数组分成两部分,其中一部分的所有元素都不大于(或都大于)基准元素,而...

Global site tag (gtag.js) - Google Analytics