(兔C残篇)数组的基数排序学习笔记

2024-04-04 01:32

本文主要是介绍(兔C残篇)数组的基数排序学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基数排序不同于之前学习过的各类排序,基数排序是通过不断的分配和收集来实现排序的,不需要关键字比较大小的概念。

//code实现过程

import java.util.Arrays;
public class ResultArray{public static void main(String[] args){//基数排序:通过分配在收集的方式进行排序int arr[] = {10,40,5,6,30,200,178,80,90,26};//确定排序轮次,通过数组元素的最大位数来确定//获取数组中元素的最大值//int maxNumber = getMaxNumber(arr);//基数排序sortArray(arr);//输出经过基数排序之后的数组元素内容System.out.println(Arrays.toString(arr));}//定义基数排序的方法public static void sortArray(int arr[]){//根据数组中元素的最大数来确定排序轮次int max = getMaxNumber(arr);int len = String.valueOf(max).length();//定义二维数组:用于管理分配和收集动作时 存放元素的桶int arrTwo[][] = new int[10][arr.length];//定义一维数组:用于统计记录桶中收集的元素int counts[] =new int[10];for(int i=0,n=1; i<= len; i++,n*=10){//嵌套一层循环//用于控制方法接收到的数组元素,并获取位数上的整数for(int j=0; j<arr.length; j++){int ys = arr[j]/n%10;arrTwo[ys][counts[ys]++] =arr[j];}//取出桶中的元素int index =0;for(int k=0; k < counts.length; k++){if(counts[k]!=0){for(int h =0; h<counts[k]; h++){arr[index] = arrTwo[k][h]; index++;}//清除上一次统计的个数counts[k] =0;}}}}//获取数组中元素最大值的方法public static int getMaxNumber(int arr[]){//定义存储最大值的元素int max = arr[0];//遍历方法接收到的数组参数,取出数组中的最大元素for(int i =0; i < arr.length; i++){if(arr[i] > max){max =arr[i];}}return max;}}

这篇关于(兔C残篇)数组的基数排序学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874485

相关文章

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

vue如何监听对象或者数组某个属性的变化详解

《vue如何监听对象或者数组某个属性的变化详解》这篇文章主要给大家介绍了关于vue如何监听对象或者数组某个属性的变化,在Vue.js中可以通过watch监听属性变化并动态修改其他属性的值,watch通... 目录前言用watch监听深度监听使用计算属性watch和计算属性的区别在vue 3中使用watchE

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06