17种编程语言实现排序算法-计数排序

news2024/11/11 20:27:54

开源地址

https://gitee.com/lblbc/simple-works/tree/master/sort/

覆盖语言:C、C++、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。
覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、前端(微信小程序、uni-app、vue)、后端(Java、Kotlin、NodeJS、Python、PHP、Go、C、C++)、鸿蒙


image

1. 安卓Java版

开发工具:下载Android Studio

  private static void sort(int[] array) {
        if (array.length == 0) return;
        int min = array[0];
        int max = min;
        for (int num : array) {
            if (num > max) {
                max = num;
            } else if (num < min) {
                min = num;
            }
        }
        int[] counting = new int[max - min + 1];
        for (int i = 0; i < array.length; i++) {
            counting[array[i] - min] += 1;
        }
        int index = -1;
        for (int i = 0; i < counting.length; i++) {
            for (int j = 0; j < counting[i]; j++) {
                index++;
                array[index] = i + min;
            }
        }
    }

image

2. 安卓Kotlin版

开发工具:下载Android Studio

private fun sort(array: IntArray) {
    if (array.isEmpty()) return
    var min = array[0]
    var max = min
    for (num in array) {
        if (num > max) {
            max = num
        } else if (num < min) {
            min = num
        }
    }
    val counting = IntArray(max - min + 1)
    for (i in array.indices) {
        counting[array[i] - min] += 1
    }
    var index = -1
    for (i in counting.indices) {
        for (j in 0 until counting[i]) {
            index++
            array[index] = i + min
        }
    }
}

image

3. NodeJS

开发工具:下载Visual Studio Code

function sort() {
  let array = [2, 1, 5, 4, 3]
  var min = array[0]
  var max = min
  for (var i = 0; i < array.length; i++) {
    if (array[i] > max) {
      max = array[i]
    } else if (array[i] < min) {
      min = array[i]
    }
  }

  var counting = Array(max - min + 1).fill(0)
  for (var i = 0; i < array.length; i++) {
    counting[array[i] - min] += 1
  }
  var index = -1
  for (var i = 0; i < counting.length; i++) {
    for (var j = 0; j < counting[i]; j++) {
      index++
      array[index] = i + min
    }
  }
}

image

4. Php

开发工具:下载Visual Studio Code

public function sort()
    {
        $array = [2, 1, 5, 4, 3];
        $bucket = [];
        $result = [];
        $min = $array[0];
        $max = $array[0];
        foreach ($array as $item) {
            if ($item < $min) {
                $min = $item;
            }
            if ($item > $max) {
                $max = $item;
            }
        }
        foreach ($array as $v) {
            if (!isset($bucket[$v])) {
                $bucket[($v)] = 0;
            }
            $bucket[$v]++;
        }
        for ($i = $min; $i <= $max; $i++) {
            while (isset($bucket[$i]) && $bucket[$i] > 0) {
                array_push($result, $i);
                $bucket[$i]--;
            }
        }
        return var_dump($result);
    }

image

5. Python

开发工具:下载PyCharm

array = [2, 1, 5, 4, 3]


def sort():
    max_num = max(array)
    count = [0 for i in range(max_num + 1)]
    for val in array:
        count[val] += 1
    array.clear()
    for index, val in enumerate(count):
        for i in range(val):
            array.append(index)

image

6. Swift(SwiftUI版)

开发工具:XCode(mac电脑自带)

var array = [2, 1, 5, 4, 3]
func sort() {
    var min = array[0]
    var max = min
    for i in 0...array.count-1 {
        if (array[i] > max) {
            max = array[i]
        } else if (array[i] < min) {
            min = array[i]
        }
    }
    
    var counting:[Int] =  [Int](repeating: 0, count: max - min + 1)
    
    for i in 0...array.count-1 {
        counting[array[i] - min] += 1
    }
    var index = -1
    for i in 0...counting.count-1 {
        for _ in 0...counting[i]-1 {
            index += 1
            array[index] = i + min
        }
    }
}

image

7. uni-app

开发工具:下载HBuilderX

sort() {
	let array = [2, 1, 5, 4, 3]
	var min = array[0]
	var max = min
	for (var i = 0; i < array.length; i++) {
		if (array[i] > max) {
			max = array[i]
		} else if (array[i] < min) {
			min = array[i]
		}
	}

	var counting = Array(max - min + 1).fill(0)
	for (var i = 0; i < array.length; i++) {
		counting[array[i] - min] += 1
	}
	var index = -1
	for (var i = 0; i < counting.length; i++) {
		for (var j = 0; j < counting[i]; j++) {
			index++
			array[index] = i + min
		}
	}
	this.array = array
	this.arrayStr = this.convertToStr(array)
},

image

8. vue

开发工具:下载Visual Studio Code

sort() {
      let array = [2, 1, 5, 4, 3]
      var min = array[0]
      var max = min
      for (var i = 0; i < array.length; i++) {
        if (array[i] > max) {
          max = array[i]
        } else if (array[i] < min) {
          min = array[i]
        }
      }

      var counting = Array(max - min + 1).fill(0)
      for (var i = 0; i < array.length; i++) {
        counting[array[i] - min] += 1
      }
      var index = -1
      for (var i = 0; i < counting.length; i++) {
        for (var j = 0; j < counting[i]; j++) {
          index++
          array[index] = i + min
        }
      }
      this.array = array
      this.arrayStr = this.convertToStr(array)
    },

9. 微信小程序

开发工具:下载微信开发者工具

sort() {
    let array = [2, 1, 5, 4, 3]
    var min = array[0]
    var max = min
    for (var i = 0; i < array.length; i++) {
      if (array[i] > max) {
        max = array[i]
      } else if (array[i] < min) {
        min = array[i]
      }
    }

    var counting = Array(max - min + 1).fill(0)
    for (var i = 0; i < array.length; i++) {
      counting[array[i] - min] += 1
    }
    var index = -1
    for (var i = 0; i < counting.length; i++) {
      for (var j = 0; j < counting[i]; j++) {
        index++
        array[index] = i + min
      }
    }
  },

image

10. 鸿蒙(ArkTS)

开发工具:下载DevEco Studio

sort() {
    let array = [2, 1, 5, 4, 3]
    var min = array[0]
    var max = min
    for (var i = 0; i < array.length; i++) {
      if (array[i] > max) {
        max = array[i]
      } else if (array[i] < min) {
        min = array[i]
      }
    }

    var counting = Array(max - min + 1).fill(0)
    for (var i = 0; i < array.length; i++) {
      counting[array[i] - min] += 1
    }
    var index = -1
    for (var i = 0; i < counting.length; i++) {
      for (var j = 0; j < counting[i]; j++) {
        index++
        array[index] = i + min
      }
    }
    this.array = array
  }

image

11. Go语言

开发工具:下载Visual Studio Code

var array = []int{2, 1, 5, 4, 3}

func sort() {
	var index int = 0
	var tmpLen int = 0
	for _, data := range array {
		if tmpLen < data {
			tmpLen = data
		}
	}
	tmpLen++
	tmpArray := make([][]int, tmpLen)
	for _, data := range array {
		tmpArray[data] = append(tmpArray[data], data)
	}
	for i := 0; i < tmpLen; i++ {
		if tmpArray[i] != nil {
			for j := 0; j < len(tmpArray[i]); j++ {
				array[index] = tmpArray[i][j]
				index++
			}
		}
	}
}

image

12. Java

开发工具:下载IntelliJ IDEA

 private static void sort(int[] array) {
        if (array.length == 0) return;
        int min = array[0];
        int max = min;
        for (int num : array) {
            if (num > max) {
                max = num;
            } else if (num < min) {
                min = num;
            }
        }
        int[] counting = new int[max - min + 1];
        for (int i = 0; i < array.length; i++) {
            counting[array[i] - min] += 1;
        }
        int index = -1;
        for (int i = 0; i < counting.length; i++) {
            for (int j = 0; j < counting[i]; j++) {
                index++;
                array[index] = i + min;
            }
        }
    }

image

13. Kotlin

开发工具:下载IntelliJ IDEA

private fun sort(array: IntArray) {
    if (array.isEmpty()) return
    var min = array[0]
    var max = min
    for (num in array) {
        if (num > max) {
            max = num
        } else if (num < min) {
            min = num
        }
    }
    val counting = IntArray(max - min + 1)
    for (i in array.indices) {
        counting[array[i] - min] += 1
    }
    var index = -1
    for (i in counting.indices) {
        for (j in 0 until counting[i]) {
            index++
            array[index] = i + min
        }
    }
}

image

14. Flutter

开发工具:下载IntelliJ IDEA

void sort(List<int> array) {
  int min = array[0];
  int max = min;
  for (int num in array) {
    if (num > max) {
      max = num;
    } else if (num < min) {
      min = num;
    }
  }
  List<int> counting = List.filled(max - min + 1, 0);
  for (int i = 0; i < array.length; i++) {
    counting[array[i] - min] += 1;
  }
  int index = -1;
  for (int i = 0; i < counting.length; i++) {
    for (int j = 0; j < counting[i]; j++) {
      index++;
      array[index] = i + min;
    }
  }
}

15. C语言

开发工具:下载Visual Studio

void sort(int* array, int count)
{
	int min = array[0];
	int max = min;
	for (int i = 1; i < count; i++)
	{
		if (array[i] > max)
		{
			max = array[i];
		}
		else if (array[i] < min)
		{
			min = array[i];
		}
	}
	int countingLen = max - min + 1;

	int* counting = (int*)malloc(sizeof(int) * countingLen);
	memset(counting,0,sizeof(int)* countingLen);

	for (int i = 0; i < count; i++)
	{
		counting[array[i] - min] += 1;
	}
	int index = -1;
	for (int i = 0; i < countingLen; i++)
	{
		for (int j = 0; j < counting[i]; j++)
		{
			index++;
			array[index] = i + min;
		}
	}
	free(counting);
}

image

16. C++

开发工具:下载Visual Studio

void sort(int *array, int count)
{
	int min = array[0];
	int max = min;
	for (int i = 1; i < count; i++)
	{
		if (array[i] > max)
		{
			max = array[i];
		}
		else if (array[i] < min)
		{
			min = array[i];
		}
	}
	int countingLen = max - min + 1;
	int *counting = new int[countingLen];
	for (int i = 0; i < count; i++)
	{
		counting[array[i] - min] += 1;
	}
	int index = -1;
	for (int i = 0; i < countingLen; i++)
	{
		for (int j = 0; j < counting[i]; j++)
		{
			index++;
			array[index] = i + min;
		}
	}
	delete[] counting;
}

image

17. C#

开发工具:下载Visual Studio

private static void Sort(int[] array)
{
    if (array.Length == 0) return;
    int min = array[0];
    int max = min;
    foreach (int num in array)
    {
        if (num > max)
        {
            max = num;
        }
        else if (num < min)
        {
            min = num;
        }
    }
    int[] counting = new int[max - min + 1];
    for (int i = 0; i < array.Length; i++)
    {
        counting[array[i] - min] += 1;
    }
    int index = -1;
    for (int i = 0; i < counting.Length; i++)
    {
        for (int j = 0; j < counting[i]; j++)
        {
            index++;
            array[index] = i + min;
        }
    }
}

image

关于

厦门大学计算机专业|华为八年高级工程师
专注《零基础学编程系列》 http://lblbc.cn/blog
包含:Java | 安卓 | 前端 | Flutter | iOS | 小程序 | 鸿蒙
公众号:蓝不蓝编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/177153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣sql简单篇练习(五)

力扣sql简单篇练习(五) 1 游戏玩法分析 I 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 # 第一次登录平台的日期就代表是时间靠前的日期 # 窗口函数是Mysql8版本后才能使用 SELECT e.player_id,e.event_date first_login FROM (SELECT player_id,e…

五、python-地图可视化篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. 基础地图 2. 设置分段 1. 基础地图 from pyecharts.charts import Map # 准备地图对象 map Map() # 准备数据 data[ ("北京",99), ("上海",199), ("…

17种编程语言实现排序算法-堆排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言&#xff1a;C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台&#xff1a;安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

Maplab 2.0发布:多传感器融合的SLAM框架,支持多机器人、语义回环检测功能

摘要 将多种传感器和深度学习集成到SLAM系统中是当前研究的重要领域。多模态是一块跳板&#xff0c;既可以在挑战场景下增强鲁棒性&#xff0c;又可以解决不同传感器配置的多机系统建图问题。Maplab 2.0提供了一个更加通用的开源平台&#xff0c;最初的Maplab用于创建和管理视…

5-3中央处理器-数据通路的功能和基本结构

文章目录一.功能二.基本结构三.数据流向&#xff08;一&#xff09;内部单总线方式1.寄存器之间的数据传送2.主存与CPU之间的数据传送3.执行算术或逻辑运算&#xff08;二&#xff09;专用数据通路方式一.功能 数据在功能部件之间传送的路径称为数据通路。路径上的部件称为数据…

合宙ESP32C3上手使用

概述经典款是有ch343 ttl 转usb 需要安装驱动 GPIO20/21新款使用usb 直连不需要驱动 USB GPIO18/19ESP32C3 是ESP-RISC-V CPU 是基于 RISC-V ISA 的 32 位内核&#xff0c;包括基本整数 (I)&#xff0c;乘法/除法 (M) 和压缩 (C) 标准扩展。ESP-RISC-V CPU 内核具有 4 级有序标…

【蓝桥杯】简单数论1——GCDLCM

GCD 最大公约数Greatest Common Divisor(GCD)&#xff1a;整数a和b的GCD是指能同时整除a和b的最大整数&#xff0c;记为gcd(a,b)。由于-a的因子和a的因子相同&#xff0c;因此gcd(a, b) gcd(al, |bl)。编码时只关注正整数的最大公约数。 GCD性质 (1) gcd(a, b) gcd(a, ab) …

一、python准备工作篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. python官网 2. 检查是否安装完毕 3. pycharm官网 5. phcharm更换主题 6. 新建第一个python文件 7. pycharm字体大小设置 8. 设置快捷键 设置字体大小 ​​​​​​​9. 安装中文…

Python机器学习:假设检验

方差分析这部分内容还不是很理解&#xff0c;在这里先做一个笔记&#xff0c;以后有时间再回过头来改一改。 用到的数据集→\rightarrow→Iris 什么是假设检验&#xff1f; 假设检验就是利用样本数据对某个事先做出的统计假设&#xff0c;再按照某种方法去检验&#xff0c;最后…

CSS样式基础内容2

目录 Emmet语法 快速格式化代码 CSS的复合选择器 后代选择器 子选择器 并集选择器 伪类选择器 链接伪类选择器 focus伪类选择器 CSS元素显示模式 块元素 行内元素 行内块元素 元素显示模式转换 案例-简洁版侧边栏 单行文字垂直居中 CSS的背景 背景图片 方位名词…

【蓝桥云课】最大公约数与最小公倍数

一、最大公约数gcd(a,b) 引例&#xff1a; a24&#xff0c;其因子有1、2、3、4、6、8、12、24 b15&#xff0c;其因子有1、3、5、15 最大公约数gcd(a,b)gcd(24,15)3 欧几里得辗转算法&#xff1a; a max(a,b); b min(a,b); while(b>0){t a%b;a b;b t; }运算过程&…

postgresql源码学习(53)—— vacuum②-lazy vacuum之heap_vacuum_rel函数

一、 table_relation_vacuum函数 1. 函数定义 前篇最后&#xff08;https://blog.csdn.net/Hehuyi_In/article/details/128749517&#xff09;&#xff0c;我们提到了table_relation_vacuum函数&#xff08;tableam.h文件&#xff09;&#xff0c;本篇继续学习。 如前面所说&a…

人大金仓数据库对象访问权限

数据库的表、索引、视图等&#xff0c;在数据库中的一切都可以称为数据库对象。 对象分为以下两类 模式&#xff08;SCHEMA&#xff09;对象&#xff1a;可视为一个表的集合&#xff0c;可以理解为一个存储目录&#xff0c;包含视图、索引、数据类型、函数和操作符等。非模式…

AcWing1229.日期问题——学习笔记

目录 题目 代码 AC结果 思路&#xff1a; 一、获取数据 二、验证日期合法性 三、去重 四、排序 五、主方法中调用&输出 题目 1229. 日期问题 - AcWing题库https://www.acwing.com/problem/content/description/1231/ 代码 import java.util.Scanner;public class…

XILINX FPGA OV5640 摄像头驱动(一)

影像行业是一个值得深耕的方向&#xff0c;废话不多说 先看输入和输出 输入是光照&#xff0c;输出是光照的数字信号 image area&#xff1a;说的是感光矩阵&#xff0c;CMOS图像传感器的最核心部分&#xff0c;接收光照产生电信号的部分。决定了图像质量的好坏 矩阵就会行列…

MyBatisPlus笔记

一、MyBatisPlus概述 MyBatisPlus&#xff08;简称 MP&#xff09;是一个MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 MyBatis-Plus可以节省我们大量工作时间&#xff0c;所有的CRUD代码它都可以自动化完成&…

leetcode1143 最长公共子序列

题目 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08;…

因果诊断原理

因果分析在近十来年逐渐倍受关注&#xff0c;其提供了解释因子间因果性的定量分析工具&#xff0c;广泛用于数据分析领域&#xff0c;同时也就用决策分析、作用预估等反事实因果推理中。本文首先对比了因果性和相关性的关系&#xff0c;之后确定因果关系的基本方法&#xff0c;…

博客搭建教程1-Archlinux环境配置

文章目录1 前言2 archlinux镜像下载3 archlinux安装1 前言 这个教程主要讲解linux环境下博客的搭建&#xff0c;这里的linux系统选择archlinux&#xff0c;博客的框架基于hexo框架。 参考博客&#xff1a; 1、ArchLinux安装教程 2、Archlinux2022年7月镜像 手把手安装教程 UE…

MySQL进阶——存储过程

MySQL 存储过程 1、简介 大多数 SQL 语句都是针对一个或多个表的单条语句。并非所有的操作都那么简单。经常会有一个完整的操作需要多条语句才能完成。 存储过程简单来说&#xff0c;就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的…