计数排序,分别用汇编语言,C语言,C++,java,python编写出来

计数排序,不是基于比较,而是基于计数。
计数排序步骤如下:
  • 遍历数组,找出最大值和最小值。
  • 根据最大值和最小值,初始化对应的统计元素数量的数组。
  • 遍历元素,统计元素个数到新的数组。
  • 遍历统计的数组,按照顺序输出排序的数组元素。

计数排序,分别用汇编语言,C语言,C++,java,python编写出来
以下是使用汇编语言、C语言、C++、Java和Python编写的计数排序算法示例代码:
1.汇编语言(x86)代码示例:

assembly
section .data
arr db 5, 3, 1, 2, 4
n equ $-arr
section .bss
count resb 256
section .text
global _start
_start:
mov ecx, n
xor esi, esi
count_loop:
mov al, [arr + esi]
inc byte [count + eax]
inc esi
loop count_loop
mov esi, 0
mov edi, 0
output_loop:
mov al, byte [count + esi]
test al, al
jz skip_output
mov ecx, eax
mov edx, esi
mov eax, 1
mov ebx, 1
int 0x80
skip_output:

SVIP价 5 折 永久SVIP免费

已有0人支付

2.C语言代码示例:

#include <stdio.h>
void countingSort(int arr[], int n) {
int count[256] = {0};
int output[n];
for (int i = 0; i < n; i++) {
count[arr[i]]++;
}
for (int i = 1; i < 256; i++) {
count[i] += count[i – 1];
}
for (int i = n – 1; i >= 0; i–) {
output[count[arr[i]] – 1] = arr[i];
count[arr[i]]–;
}
for (int i = 0; i < n; i++) {
arr[i] = output[i];
}
}

SVIP价 5 折 永久SVIP免费

已有0人支付

3.C++代码示例:

#include <iostream>
#include <vector>
void countingSort(std::vector<int>& arr) {
int n = arr.size();
std::vector<int> count(256, 0);
std::vector<int> output(n);
for (int i = 0; i < n; i++) {
count[arr[i]]++;
}
for (int i = 1; i < 256; i++) {
count[i] += count[i – 1];
}
for (int i = n – 1; i >= 0; i–) {
output[count[arr[i]] – 1] = arr[i];
count[arr[i]]–;
}
for (int i = 0; i < n; i++) {
arr[i] = output[i];
}
}

SVIP价 5 折 永久SVIP免费

已有0人支付

4.Java代码示例:

import java.util.Arrays;
public class CountingSort {
public static void countingSort(int[] arr) {
int n = arr.length;
int[] count = new int[256];
int[] output = new int[n];
for (int i = 0; i < n; i++) {
count[arr[i]]++;
}
for (int i = 1; i < 256; i++) {
count[i] += count[i – 1];
}
for (int i = n – 1; i >= 0; i–) {
output[count[arr[i]] – 1] = arr[i];
count[arr[i]]–;
}
for (int i = 0; i < n; i++) {
arr[i] = output[i];
}
}

}

SVIP价 5 折 永久SVIP免费

已有0人支付

5.Python代码示例:

def countingSort(arr):
count = [0] * 256
output = [0] * len(arr)
for num in arr:
count[num] += 1
for i in range(1, 256):
count[i] += count[i – 1]
for num in reversed(arr):
output[count[num] – 1] = num
count[num] -= 1
for i in range(len(arr)):
arr[i] = output[i]

SVIP价 5 折 永久SVIP免费

已有0人支付

这些示例代码演示了如何使用汇编语言、C语言、C++、Java和Python编写计数排序算法。您可以根据需要运行这些代码,并查看排序后的结果。


扫码关注微信公众号,免费查看完整算法内容。

下载说明:
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » 计数排序,分别用汇编语言,C语言,C++,java,python编写出来