一、原理介绍 所谓的基数排序算法,即使对于待排序数据,将其看做数据数位相同的数据。 随后一次依据每个数字个位大小排序,重新排序之后,再根据每一个数字的十位大小排序,依次进行,最后数据就可以达到一个整体有序的状态。 二、实例 对于这样的一系列数据: int arr[15] = { 123, 234, ...
分类:
编程语言 时间:
2019-11-21 11:39:04
阅读次数:
72
数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。 常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示: 每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。 1、数组 数组是可以再内存中连续存储多个元 ...
分类:
其他好文 时间:
2019-11-18 18:23:59
阅读次数:
69
各种排序算法所需辅助空间 1、 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1); 2、 快速排序为O(logn ),为栈所需的辅助空间; 3、 归并排序所需辅助空间最多,其空间复杂度为O(n ); 4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。 ...
分类:
编程语言 时间:
2019-11-16 21:32:40
阅读次数:
74
基数排序 2019-11-10 11:42:38 by冲冲 1、概念 基数排序与本系列前面讲解的七种排序方法都不同,它不需要比较关键字的大小。 它是根据关键字中各位的值,通过对排序的N个元素进行若干趟“分配”与“收集”来实现排序的。 2、基本思想 设有一个初始序列为: R {50, 123, 543 ...
分类:
编程语言 时间:
2019-11-10 17:16:17
阅读次数:
74
学号20182325袁源 《数据结构与面向对象程序设计》第8周学习总结 教材学习内容总结 排序、算法、栈、队列 插入排序、交换排序,选择排序、基数排序、归并排序 用时间效率、空间效率、稳定性(数值相等次序不变)衡量算法。 树:由n个结点组成的有限集合 n=0为空树 非线性结构 DNS; 一对多;有且 ...
分类:
其他好文 时间:
2019-11-04 21:27:29
阅读次数:
84
排序算法系列博客: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 计数排序 基数排序 九大排序排序是数据结构体系中最重要的内容之一,这一块必须要非常熟练的掌握,应该做到可以立马写出每个排序的代码,有多种实现方法的必须多种都能很快写出来,当然对各个排序的性能的了解也是基础 ...
分类:
编程语言 时间:
2019-11-04 20:12:41
阅读次数:
133
本篇博客是为了熟悉冒泡选择插入希尔归并快速基数排序这几种排序算法而写的,基本上是看了书上代码,然后自己手敲理解一遍。 ...
分类:
编程语言 时间:
2019-10-30 00:08:44
阅读次数:
103
//希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本.但希尔排序是非稳定排序算法. 希尔排序是基于插入排序的以下两点性质而提出改进方法的 : 1. 插入排序在对几乎已经排好序的数据操作时,效率高,既可以达到线性排序的效率 2. 但插入排序一般来说是低效的,因为插入排序每次只能将数据移... ...
分类:
编程语言 时间:
2019-10-26 13:38:52
阅读次数:
83
Contents 定义排序前后两个相等的数相对位置不变,则稳定稳定性的好处从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用各排序算法的稳定性堆排序、快速排序、希尔排序、直接选择排序不是稳定的排序算法基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算... ...
分类:
编程语言 时间:
2019-10-21 11:29:26
阅读次数:
87
冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、基数排序、堆排序。 推荐网址1:https://www.cnblogs.com/onepixel/articles/7674659.html 推荐网址2(C++):https://blog.csdn.net/opooc/article/de ...
分类:
编程语言 时间:
2019-10-15 19:11:43
阅读次数:
84