`
朱辉辉33
  • 浏览: 27080 次
  • 性别: 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实现,可实现动态图实现,算法详细书名:https://blog.csdn.net/qq_28531269/article/details

    常见排序算法python实现

    常见的排序算法python实现,选择排序,插入排序,希尔排序,归并排序,快速排序,堆排序,包括测试用例。

    各种内排序算法Python实现

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

    快速排序算法python.rar

    快速排序算法

    经典排序算法PYTHON版

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

    python常用排序算法汇总

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

    数据结构排序算法python

    python写的排序算法,插入选择冒泡快速排序,代码

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

    本文件包含冒泡排序的基本思路,代码实现,时间复杂度的分析。对数据结构与算法中冒泡排序算法的实现,附件以python语言实现。

    python常用排序算法.docx

    python常用排序算法全文共5页,当前为第1页。python常用排序算法全文共5页,当前为第1页。python常用排序算法 python常用排序算法全文共5页,当前为第1页。 python常用排序算法全文共5页,当前为第1页。 排序算法是...

    Python 3实现十大排序算法

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

    python常用排序算法(2).docx

    python常用排序算法 Python常用排序算法 排序算法是计算机科学中的基本算法之一,它是将一组数据按照一定的顺序进行排列的过程。在Python中,常用的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。...

    python常用排序算法(1).docx

    python常用排序算法 Python常用排序算法 排序算法是计算机科学中的基本算法之一,它是将一组数据按照一定的顺序进行排列的过程。在Python中,常用的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。...

    python-冒泡排序算法.docx

    python 冒泡排序算法 Python 冒泡排序算法 冒泡排序算法是一种简单的排序算法,它的基本思想是通过不断比较相邻的元素,将较大的元素向后移动,较小的元素向前移动,从而实现排序的目的。冒泡排序算法的时间复杂度为...

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

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

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

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

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

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

    非支配排序遗传算法(NSGA-II) 的实现,一种Python 中 的多目标优化算法_python_Jupyter _代码_下载

    非支配排序遗传算法(NSGA-II) 的实现,一种Python 中 的多目标优化算法_python_Jupyter _代码_下载

    python实现的排序算法,sorted

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

    排序算法介绍及python实现.zip

    排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法介绍及python实现排序算法...

Global site tag (gtag.js) - Google Analytics