`
朱辉辉33
  • 浏览: 27982 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

排序算法—python

 
阅读更多

归并排序:

 

def merge(a, b):
	c = []
	i, j = 0, 0
	while i < len(a) and j < len(b):
		if a[i] < b[j]:
			c.append(a[i])
			i += 1
		else:
			c.append(b[j])
			j += 1
	if i == len(a):
		c.extend(b[j:])
	else:
		c.extend(a[i:])
	return c

def merge_sort(lists):
	if len(lists) <= 1:
		return lists
	middle = len(lists)/2
	left_list = merge_sort(lists[:middle])
	right_list = merge_sort(lists[middle:])
	return merge(left_list, right_list)

 

 

 

堆排序:

 

def Max_Heapify(heap, heapSize, i):#在堆中做结构调整使得父节点的值大于子节点
	left = 2*i + 1
	right = 2*i + 2
	tmp = i
	if left < heapSize and heap[left] > heap[tmp]:
		tmp = left
	if right < heapSize and heap[right] > heap[tmp]:
		tmp = right
	if tmp != i:
		heap[tmp], heap[i] = heap[i], heap[tmp]
		Max_Heapify(heap, heapSize, tmp)	
		
def Build_Max_Heap(heap):#构造一个堆,将堆中所有数据重新排序
    for i in range(len(heap)/2, -1, -1):
		Max_Heapify(heap, len(heap), i)

def HeapSort(heap):#将根节点取出与最后一位做对调,对前面len-1个节点继续进行对调整过程。
    Build_Max_Heap(heap)
    for i in range(len(heap)-1, -1, -1):
		heap[0], heap[i] = heap[i], heap[0]
		Max_Heapify(heap, i, 0)
    return heap

 快速排序:

def QuickSort(arr, begin, end):
    if begin < end:
        tmp = Partition(arr, begin, end)
        QuickSort(arr, begin, tmp)       
        QuickSort(arr, tmp + 1, end)
    else:
        return
 
 
def Partition(arr, begin, end):
    i = begin - 1
    for j in range(begin, end):
        if arr[j] <= arr[end]:
            i = i + 1
            arr[i], arr[j] = arr[j], arr[i]
    arr[i+1], arr[end] = arr[end], arr[i+1]
    return i

 

 

分享到:
评论

相关推荐

    排序算法 Python 实现(源码)

    python 排序算法 Python 实现(源码) 排序算法 Python 实现(源码) 排序算法 Python 实现(源码)

    算法实现排序算法 Python 实现.zip

    算法实现排序算法 Python 实现.zip

    希尔排序算法python实现,可实现动态图实现

    希尔排序算法python实现,可实现动态图实现,算法详细书名:https://blog.csdn.net/qq_28531269/article/details

    快速排序算法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] ...

    快速排序算法python实现.zip

    快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare在1960年提出。它的基本思想是分治法(Divide and Conquer),通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的...

    数据结构排序算法python

    Python作为一门易读性强、语法简洁的编程语言,是学习和实现排序算法的理想选择。本资源包含了一个名为`SortSolution.py`的Python文件,里面实现了几种经典的排序算法,包括插入排序、选择排序、冒泡排序和快速排序...

    各种内排序算法Python实现

    各种内排序算法,Python实现。包括:冒泡排序,选择排序,插入排序,希尔排序,快速排序,堆排序,归并排序。程序中附有测试代码及性能比较代码。

    经典排序算法PYTHON版

    常用的排序算法,使用PYTHON实现,包括:插入排序、选择排序、快速排序、希尔排序(附多种增量生成算法)、堆排序、归并排序

    python常用排序算法汇总

    该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...

    01_bubble_sort_冒泡排序算法python实现_

    以下是基于Python的冒泡排序算法实现: ```python def bubble_sort(arr): n = len(arr) # 遍历整个数组 for i in range(n): # 内层循环,从第一个元素开始,比较并交换相邻元素 for j in range(0, n-i-1): # ...

    常见排序算法python实现

    Python作为一门强大且广泛应用的编程语言,提供了多种实现排序算法的方法。本文将深入探讨七种常见的排序算法及其Python实现:选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序,以及对应的测试用例。 1....

    python优化算法工具包-整理一份可以让Python变得更快的工具清单,排序算法数据结构 最快的排序算法

    Python优化算法工具包提供了一系列可以让Python变得更快的工具清单,涵盖了排序算法、数据结构、开发语言等方面。这些工具可以帮助开发者优化Python代码,提高代码的执行速度和效率。 1. 排序算法 Python提供了...

    Python 3实现十大排序算法

    个人总结十大排序算法的Python 3 实现,实测可运行。具体包括:-1 插排-2 希尔-3 选择-4 快排-5 冒泡-6 堆排-7 归并-8 计数-9 桶排-10 基数

    基于Python实现LeaderRank复杂网络中节点排序算法

    基于Python2.7实现的LeaderRank复杂网络节点排序算法,算法输出排序后每个节点的重要性值 参考论文:2011-Leaders in Social Networks, the Delicious

    十大经典排序算法(动图演示) - 一像素 - 博客园.mhtml

    通过学习十大经典排序算法(动图演示),你可以了解C语言中的排序方法,对C语言的程序设计会有很大帮助,有助于今后的工作和学习

    具有设置的装配线平衡问题的 贪婪随机 自适应 搜索程序_python_代码_下载

    对于每个实例,将计算十个解决方案,一个使用八个启发式算法中的每一个,两个使用贪婪随机自适应搜索过程 (GRASP)。GRASP 以 5 次 (GRASP-5) 运行一次,以 10 次 (GRASP-10) 迭代运行一次。然后计算每个解决方案与...

    各种排序算法的Python实现

    在IT领域,排序算法是计算机科学的基础之一,尤其在编程语言如Python中,理解并能够实现这些算法对于提升代码效率和解决复杂问题至关重要。这里我们将深入探讨标题提及的七种排序算法的Python实现:冒泡排序、堆排序...

    python实现的排序算法,sorted

    排序算法排序算法排序算法排序算法排序算法排序算法排序算法排序算法排序算法

Global site tag (gtag.js) - Google Analytics