最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python算法学习之计数排序实例

来源:懂视网 责编:小采 时间:2020-11-27 14:38:48
文档

python算法学习之计数排序实例

python算法学习之计数排序实例:python算法学习之计数排序实例 代码如下:# -*- coding: utf-8 -*- def _counting_sort(A, B, k): 计数排序,伪码如下: COUNTING-SORT(A, B, k) 1 for i ← 0 to k // 初始化存储区的值 2 do C[i] ← 0 3 for j ←
推荐度:
导读python算法学习之计数排序实例:python算法学习之计数排序实例 代码如下:# -*- coding: utf-8 -*- def _counting_sort(A, B, k): 计数排序,伪码如下: COUNTING-SORT(A, B, k) 1 for i ← 0 to k // 初始化存储区的值 2 do C[i] ← 0 3 for j ←

python算法学习之计数排序实例

代码如下:


# -*- coding: utf-8 -*-

def _counting_sort(A, B, k):
"""计数排序,伪码如下:
COUNTING-SORT(A, B, k)
1 for i ← 0 to k // 初始化存储区的值
2 do C[i] ← 0
3 for j ← 1 to length[A] // 为各值计数
4 do C[A[j]] ← C[A[j]] + 1
5 ▷ C[i]包含等于i的元素个数
6 for i ← 1 to k // 求计数和,确定<=各值的元素数
7 do C[i] ← C[i] + C[i-1]
8 ▷ C[i]包含小于或等于i的元素个数
9 for j ← length[A] downto 1
10 do B[C[A[j]]] ← A[j] // 将A[j]值放到对应位置
11 C[A[j]] ← C[A[j]] - 1 // 避免元素相同时覆盖同一位置

T(n) = θ(n)

Args:
A (Sequence): 原数组
B (Sequence): 结果数组
k (int): 值上限,假定了所有元素介于[0,k]
"""
len_c = k + 1
C = [0] * len_c
for a in A:
C[a] = C[a] + 1
for i in range(1, len_c):
C[i] = C[i] + C[i-1]
for a in A[::-1]:
B[C[a]-1] = a
C[a] = C[a] - 1

def counting_sort(A):
"""假定A数组所有元素都介于[0,len(A)-1]"""
B = [0] * len(A)
_counting_sort(A, B, len(A) - 1)
return B

if __name__ == '__main__':
import random, timeit

items = range(10000)
random.shuffle(items)

def test_sorted():
print(items)
sorted_items = sorted(items)
print(sorted_items)

def test_counting_sort():
print(items)
sorted_items = counting_sort(items)
print(sorted_items)

test_methods = [test_sorted, test_counting_sort]
for test in test_methods:
name = test.__name__ # test.func_name
t = timeit.Timer(name + '()', 'from __main__ import ' + name)
print(name + ' takes time : %f' % t.timeit(1))

文档

python算法学习之计数排序实例

python算法学习之计数排序实例:python算法学习之计数排序实例 代码如下:# -*- coding: utf-8 -*- def _counting_sort(A, B, k): 计数排序,伪码如下: COUNTING-SORT(A, B, k) 1 for i ← 0 to k // 初始化存储区的值 2 do C[i] ← 0 3 for j ←
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top