算法
fltenwall
数据科学与人工智能硕士
展开
-
计数排序和桶排序——python和javascript实现
计数排序 python版 不稳定计数排序 # 不稳定计数排序 def count_sort(arr): max,min = findMaxAndMin(arr) space = max - min countArr = [0] * (space+1) resultArr = [] # 计数 for num in arr: for j in range(0,space+1): if num == j: countArr[j]+=1 # 排序 for i in ran原创 2021-04-26 14:23:30 · 189 阅读 · 1 评论 -
计数排序的python实现和javascript实现
python实现 def count_sort(arr): max,min = findMaxAndMin(arr) space = max - min countArr = [0] * (space+1) resultArr = [0] * (space+1) for num in arr: for j in range(0,space+1): if num == j: countArr[j]+=1 for i in range(0,len(countArr)): i原创 2021-04-25 17:31:08 · 156 阅读 · 2 评论 -
快速排序的双指针递归与非递归、单指针递归与非递归实现
双向递归 def quick(start_index,end_index,arr): # 递归 if start_index >= end_index: return base = getBase(start_index,end_index,arr) quick(start_index,base-1,arr) quick(base+1,end_index,arr) def getBase(start_index,end_index,arr):原创 2021-04-25 09:38:52 · 195 阅读 · 0 评论 -
快速排序的python、java、javascript实现
概述 快速排序与冒泡排序的相似处是都采取了临近比较、交换两值的方式,快速排序的特点在于运用了分治法,每次都将数组分成两个部分,与一个基准元素进行比较,比标志位大的放在标志位的右边,比标志位小的放在标志位的左边。基准元素的选择可以是简单的使用列表的第一个元素,也可以任意进行选择。 快速排序的python实现 def quickFixedFinal(startIndex, endIndex, arr=[]): if startIndex >= endIndex: return原创 2021-04-21 17:50:25 · 154 阅读 · 0 评论 -
使用java,javasript,python实现冒泡排序的三个版本
概要 冒泡排序是最简单的一种排序方式,最基础的实现用嵌套的两层for循环即可实现。但是即便是最简单的冒泡排序也存在着很大的优化空间,我们可以对两层循环分别进行优化。 首先来看一下两层for循环的作用: 外层for循环是对比较趟数的控制 内层for循环时对每一趟比较次数的控制 存在的优化空间是: 对于外层循环,如果数组已经有序,就不需要再进行外层循环了,需要一个标记来进行跟踪数组是否已经有序。而有序的标志是某一趟不再进行数据交换了。 对于内层循环,由于冒泡排序每一次是把最大的放到最后,所以后面的元素是有序的,原创 2021-04-21 16:52:03 · 181 阅读 · 0 评论