算法
cyh183269855
呵呵呵
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
合并排序算法
一、介绍基本的排序算法主要可以分为两大类。第一类时基于逐个比较的,第二类是非比较的。插入排序Insertion sort,冒泡排序bubble,和希尔排序Shell sort都是基于比较模型的。这三个算法的时间复杂度为O(n^2),实在是太慢了。是否有可能比O(n^2)更快的排序方法呢?答案当然是有的。前面三种算法都是从待排序列表开始比较其中的每两个元素大小。插入排序和冒泡排序作了很多次比转载 2016-08-24 13:37:51 · 1164 阅读 · 0 评论 -
分配排序
与之前的那些比较排序不同,分配排序在排序过程无须比较关键字,而是通过"分配"和"收集"过程来实现排序。它们的时间复杂度可达到线性阶:O(n)。常见的分配排序有计数排序(Counting Sort),基数排序(Radix Sort),桶排序(Bucket Sort),美国旗帜排序(American Flag Sort),珠排序(Bead Sort),爆炸排序(Burst Sort),鸽巢排序(Pig转载 2016-08-24 15:16:20 · 1338 阅读 · 0 评论 -
归并排序
归并排序是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。常见的归并排序有两路归并排序(Merge Sort),多相归并排序(Polyphase Merge Sort),Strand排序(Strand Sort)。下面介绍第一种:(一)两路归并排序最差时间复杂度:O(nlogn)平均时间复杂度:O(nlogn)最差空间复杂度:O(n)稳定转载 2016-08-24 15:17:36 · 297 阅读 · 0 评论 -
C++封装队列
对于队列的思考队列拥有的特性和栈相反,即:栈先进后出,队列先进先出。 而与栈相同的是,栈仍然也是线性的存储结构进行存储,而与栈相同的是,需要频繁的进行入队和出队,因此仍然可以采用栈的相同方式进行类似的实现。 详细参考:C++封装栈开始栈的封装#ifndef ZQueue_hpp#define ZQueue_hpp#include "ZLinkedList.hpp"转载 2016-10-09 19:04:22 · 523 阅读 · 0 评论 -
C++封装栈
动手前的考虑对于栈而言,其实其本质仍然为线性结构,并没有产生本质的变化,因此其内部存储结构仍然可以选用之前两篇文章的存储结构进行存储。对于结构的考虑对于线性结构而言,其实是存在两种形式的,分别是:连续的向量式、不连续的链式结构。 而这两者结构,都有不同的优缺点,其中需要了解的是:向量式的更加适合于增删操作不频繁,而需要频繁随机访问元素的情形链式的则更加适合于增删转载 2016-10-09 19:01:34 · 455 阅读 · 0 评论 -
交换排序
所谓交换,就是根据序列中两个记录值的比较结果来对换这两个记录在序列中的位置。交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。常见的交换排序有冒泡排序(Bubble Sort),鸡尾酒排序(Cocktail Sort),奇偶排序(OddEven Sort),地精排序(Gnome Sort),快速排序(Quick Sort),臭皮匠排序(Stooge Sort),梳转载 2016-08-24 15:20:04 · 377 阅读 · 0 评论 -
选择排序
选择排序算法就是每一趟从待排序的记录中选出关键字最小(最大)的记录,顺序放在已排好序的子文件的最后(最前),直到全部记录排序完毕。常见的选择排序有直接选择排序(Selection Sort),堆排序(Heap Sort),平滑排序(Smooth Sort),笛卡尔树排序(Cartesian Sort),锦标赛排序(Tournament Sort),循环排序(Cycle)。下面介绍前两种:(转载 2016-08-24 15:19:14 · 257 阅读 · 0 评论 -
插入排序
插入排序的基本思想是每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。常见的插入排序有插入排序(Insertion Sort),希尔排序(Shell Sort),二叉查找树排序(Tree Sort),图书馆排序(Library Sort),Patience排序(Patience Sort)。下面介绍前两种:(一)直接插入排序最转载 2016-08-24 15:18:30 · 294 阅读 · 0 评论 -
AES加密算法的C++实现
一、AES 介绍AES(高级加密标准,Advanced Encryption Standard),在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种分组加密标准。这个标准用来替代原先的 DES,目前已经广为全世界所使用,成为对称密钥算法中最流行的算法之一。在 AES 出现之前,最常用的对称密钥算法是 DES 加密算法,它在 1977 年被公布成为美国政府的商用加密标准。原创 2017-03-13 10:57:08 · 2501 阅读 · 1 评论
分享