计数排序的python实现和javascript实现

本文介绍了一种简单的计数排序算法,并提供了Python和JavaScript两种语言的实现方式。该算法适用于整数排序,通过构建计数数组来统计每个元素出现的次数,最后按顺序输出排序后的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)):
		if countArr[i] > 0:
			tmp = countArr[i]
			while tmp:
				resultArr.append(min+i)
				tmp-=1
	return resultArr 

def findMaxAndMin(arr=[]):
	max = arr[0]
	min = arr[0]
	for i in range(1, len(arr)):
		if arr[i] > max:
			max = arr[i]
		if arr[i] < min:
			min = arr[i] 
	return max,min


my_array = list([4, 4, 6, 5, 3, 2, 8, 1, 7, 5, 6, 0, 10])
print(count_sort(my_array))

javascript实现

function count_sort(arr=[]){
	const obj = getMaxAndMin(arr);
	const max = obj.max || 0;
	const min = obj.min || 0;
	const space = max - min;
	let countArr = [];
	let result = [];
	countArr.length = space + 1;
	countArr.fill(0);

	for(let i=0;i<=arr.length-1;i++){
		for(let j=0;j<=countArr.length-1;j++){
			if(arr[i] === j) countArr[j]++
		}
	}

	for(let i=0;i<=countArr.length-1;i++){
		if(countArr[i] > 0){
			let tmp = countArr[i]
			while(tmp > 0){
				result.push(min+i)
				tmp--;
			}
		}
	}
	return result;
}

function getMaxAndMin(arr=[]){
	let max = min = space = 0;
	arr.forEach(item => {
		if(item > max) max = item;
		if(item < min) min = item;
	})
	return {max,min};
}

let arr = [4, 4, 6, 5, 3, 2, 8, 1, 7, 5, 6, 0, 10];
count_sort(arr)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值