箱排序:也称桶排序。
基本思想:设置多[k]个箱,依次把a[1],a[2],a[3]…..a[n]按其键值为k放入k个箱中,依次按1-k把k个箱首尾相连。这样就排好序了。
例如:把一副52张牌按照点数排序,可以设置13个箱依次表示为1-13,把点数为A的放到1号箱,点数为2-10的分别放入2-10号箱,把J,Q,K分别放入11-13号箱,这样依次连接1-13号箱,就排好序了。
基数排序:
基数排序的特征:基数排序的每一个键都由d个分量组成ki1,ki2,ki3…ki(d-1),这d个分量每个分量代表一个独立的关键字。如:扑克牌中的点数和花色。
排序思想:从低位到高位依次对kj(j=d-1,d-2,…,0)进行箱排序。在d趟箱排序中,所需的箱子数就是基数rd,这就是"基数排序"名称的由来。
例子:排序下列数73, 22, 93, 43, 55, 14, 28, 65, 39, 81,
按个位分别把需要排序的数放到0-9的桶中。
0 1 2 3 4 5 6 7 8 9
81 22 73 14 55 28 39
93 65
接着把这些桶中的数值按照桶的顺序串起来,如:81, 22, 73, 93, 43, 14, 55, 65, 28, 39
按十位分别数放到0-9的桶中,如:
0 1 2 3 4 5 6 7 8 9
14 22 39 43 55 65 73 81 93
28
接着把这些桶中的数值按照桶的顺序串起来,如:14, 22, 28, 39, 43, 55, 65, 73, 81, 93
这样就排好序了。
代码实现:
public static void sort(int[] number, int d) {
int k = 0;
int n = 1;
int m = 1;
int[][] temp = new int[number.length][number.length];
int[] order = new int[number.length];
while (m <= d) {
for (int i = 0; i < number.length; i++) {
int lsd = ((number[i] / n) % 10);
temp[lsd][order[lsd]] = number[i];
order[lsd]++;
}
for (int i = 0; i < d; i++) {
if (order[i] != 0)
for (int j = 0; j < order[i]; j++) {
number[k] = temp[i][j];
k++;
}
order[i] = 0;
}
n *= 10;
k = 0;
m++;
}
}
分享到:
相关推荐
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这本书的第3卷专门探讨了排序与查找这两个核心的算法主题,它们是编程和数据处理的基础。在本卷中,Knuth深入剖析了...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这部系列作品全面深入地探讨了程序设计的各个方面,旨在提高程序员的技艺和软件的质量。第三卷,通常称为“排序与搜索...
《计算机程序设计艺术》系列被公认为计算机科学领域的经*之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书为该系列的第3卷,全面讲述了排序和查找算法。书中扩展了卷1中数据结构的处理...
《计算机程序设计艺术》是计算机科学领域的一部里程碑式的作品,由著名计算机科学家Donald E. Knuth撰写。这部著作共分为七卷,其中第四卷尤为关键,深入探讨了排序和搜索算法这一核心主题。本篇将围绕第四卷及其...
《计算机程序设计艺术》是计算机科学领域的一部经典之作,由世界著名计算机科学家Donald Knuth撰写。这部巨著分为多卷,每一卷都深入探讨了编程和算法的各个方面。第四卷,即我们讨论的重点,主要关注组合算法。下面...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家Donald E. Knuth撰写。这套书籍深入探讨了编程艺术的核心,包括基础算法、半数值算法以及排序和查找算法等多个方面。以下是每卷内容的...
《计算机程序设计艺术 第 1 卷》是著名计算机科学家Donald E. Knuth的经典之作,中文版的出版为中国的读者提供了深入理解算法和程序设计精髓的机会。Donald E. Knuth,被誉为“计算机科学之父”,他的这套著作在全球...
在计算机科学的浩瀚海洋中,《计算机程序设计艺术》无疑是一块坚实的礁石,为无数程序设计的航海者提供指引。Donald Knuth,这位计算机科学界的大师,以他无与伦比的洞察力和详尽的研究,为世人奉献了这部不朽巨著。...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家Donald E. Knuth撰写。这部巨著深入探讨了程序设计的各个方面,包括基础算法、半数值算法和排序与查找等核心主题。现在,我们有中文版的...
根据提供的信息,我们可以了解到这本书是《计算机程序设计艺术》系列中的第三卷,主要涉及排序和查找技术。这一卷是该系列的重要组成部分,对于理解和掌握高效算法具有重要意义。 ### 排序算法 #### 1. 基本概念 ...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由著名计算机科学家Donald Knuth撰写。这套书共计七卷,但目前完成并出版的有前三卷。每卷都深入探讨了程序设计的各个方面,旨在提升程序员的设计技巧和理解...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由美国计算机科学家Donald E. Knuth撰写。这部著作共分为七卷,其中包含了程序设计、算法分析和计算理论的广泛内容。国防工业出版社出版的版本涵盖了第1、2...
《计算机程序设计艺术_第3卷_排序与查找》是一本经典的计算机科学著作,由世界著名计算机科学家Donald E. Knuth撰写。这本书深入探讨了排序和查找这两种在计算机科学中至关重要的算法,对于理解数据结构和算法设计...
《计算机程序设计艺术》是计算机科学领域的一部经典著作,由格拉夫顿·高德纳(Donald E. Knuth)撰写,它涵盖了算法设计、分析以及编程技术等多个方面。这套四卷合集是对计算机科学基础理论的深度探索,对于理解和...
《计算机程序设计艺术》第三版,中文版,第一卷:基本算法,这是一部在计算机科学领域内享有极高声誉的经典著作,由计算机科学界的泰斗Donald E. Knuth编著。该书不仅是一本技术手册,更是一部深入探讨计算机算法与...
《计算机程序设计艺术》是计算机科学领域的一部经典之作,由美国计算机科学家Donald E. Knuth撰写。这部著作深入探讨了程序设计的原则、方法和技术,是程序员和软件工程师的宝贵参考文献。全书分为三卷,每卷都包含...
### 《计算机程序设计艺术》第三卷:排序与查找(第二版) #### 书籍概述 《计算机程序设计艺术》(The Art of Computer Programming) 是由著名计算机科学家唐纳德·克努特 (Donald E. Knuth) 编写的一系列经典...
这套书深入探讨了程序设计的艺术与科学,其中第三卷专注于“排序和查找”这一核心主题。排序和查找是计算机科学中最基本且至关重要的算法,广泛应用于各种软件开发和数据处理中。 排序是指将一组数据按照特定顺序...
- **程序设计竞赛**:强调了算法竞赛在提升编程技能和问题解决能力方面的重要性。 ### 2. C++语言基础 - **C++语言介绍**:从编写第一个程序到深入理解C++语法、数据类型、函数、控制流等核心概念。 - **编译器和...
### 《计算机程序设计艺术》第四卷 唐纳德·E·克努斯 #### 知识点概述 《计算机程序设计艺术》是计算机科学领域内的一部经典著作,由唐纳德·E·克努斯撰写。本书涵盖了广泛的计算机科学主题,尤其侧重于算法的...