时间:2021-05-22
本文实例讲述了Python实现桶排序与快速排序算法结合应用的方法。分享给大家供大家参考,具体如下:
#-*- coding: UTF-8 -*-import numpy as npfrom QuickSort import QuickSortdef BucketSort(a, n): barrel = {} for i in xrange(0,n): barrel.setdefault(i, []) min = np.min(a) max = np.max(a) for x in a: for i in xrange(0,n-1): if x >= min +i* (max - min)/n and x < min +(i +1) * (max - min)/n: barrel[i].append(x) elif i == n-2 and x >= min +(i +1) * (max - min)/n: barrel[i+1].append(x) k = 0 for i in xrange(0,n): if len(barrel[i]) != 0: arr = np.array(barrel[i]) QuickSort(arr, 0, len(barrel[i]) -1) for x in arr: a[k] = x k += 1if __name__ == '__main__': a = np.random.randint(0, 100, size = 10) print "Before sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------" BucketSort(a, 10) print "After sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------"快速排序QuickSort:
#-*- coding: UTF-8 -*-import numpy as npdef Partition(a, i, j): x = a[i] #将数组的第一个元素作为初始基准位置 p = i #同时记录下该元素的位置 while i < j: while i < j and a[j] >= x: j -= 1 while i < j and a[i] <= x: i += 1 if i != j: a[i], a[j] = a[j], a[i] #交换a[i]与a[j] a[p], a[i] = a[i], a[p] #将a[p]与a[i]进行交换 p = i #得到分隔位置 return pdef QuickSort(a, i, j): if i < j: p = Partition(a, i, j) QuickSort(a, i, p-1) QuickSort (a, p+1, j)if __name__ == '__main__': a = np.random.randint(0, 100, size = 100) print "Before sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------" QuickSort(a, 0, a.size - 1) print "After sorting..." print "---------------------------------------------------------------" print a print "---------------------------------------------------------------"程序运行结果:
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督。本文从最简单的一个排序算法——桶排序开始,分析桶排序的实现思路,代码实现
本文实例讲述了Python实现的数据结构与算法之快速排序。分享给大家供大家参考。具体分析如下:一、概述快速排序(quicksort)是一种分治排序算法。该算法首
本文实例讲述了Python实现的桶排序算法。分享给大家供大家参考,具体如下:桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出
本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下:#!/usr/bin/python#coding:u
本文实例讲述了JS实现的计数排序与基数排序算法。分享给大家供大家参考,具体如下:计数排序计数排序就是简单的桶排序,一个桶代表数组中一个数出现的个数,所以需要一个