经典算法学习
分享一些个人的学习心得
#include编程小黑
新手上路,请多关照
展开
-
各大排序算法过程解析、样例代码、比较总结,看这一篇就够了
排序算法排序是数据处理中经常使用的一种重要运算。如何利用计算机进行排序,特别是高效地进行排序是计算机应用中的重要课题之一。因为其使用较广泛,所以排序算法在很多领域得到相当地重视。所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法的分类从计算机诞生至今,不少计算机科学家、数学家发明了各式各样的排序算法,各种排序算法可以按照不同原则加以分类。内部...原创 2020-12-14 09:34:16 · 429 阅读 · 0 评论 -
时间复杂度和空间复杂度一头雾水?此文能帮你解决疑惑
算法分析求解同一个问题时,可以有很多种不同的算法,那如何评价这些算法的好坏呢?首先,大前提是算法是正确的,可执行的,然后再主要考虑以下三点:①执行算法所耗费的时间——时间复杂度②执行算法所耗费的空间——空间复杂度③算法应易于理解、易于编写、易于调试我们目标都是找到一个执行时间相对短的、占用空间少的、便于理解和编写的算法。这三点中第三点是带有一定主观性,毕竟每个人对待问题的理解方式不同,...原创 2020-05-30 11:09:14 · 797 阅读 · 0 评论 -
排序算法—基数排序
基数排序基数排序(Radix Sort)属于分配排序的一种,由赫尔曼·何乐礼发明提出。之前的排序算法都是基于关键字之间的比较,判断大小,然后再进行调整。分配排序则不同,它无需进行关键字的比较,而是利用关键字的结构,通过“分配”和“收集”的办法来实现排序。分配排序可分为箱排序和基数排序两类。题目描述给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出...原创 2020-05-10 09:37:42 · 1091 阅读 · 0 评论 -
排序算法—归并排序
归并排序归并排序(Merge Sort)是利用“归并”技术来进行排序,所谓归并是指将若干个子文件合并为一个文件的过程,由约翰·冯·诺伊曼发明。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。即是将文件先分解再合并,最终得到有序序列。题目描述给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后...原创 2020-04-27 09:39:24 · 269 阅读 · 0 评论 -
排序算法—堆排序
堆排序堆排序也是选择排序的一种,起源于罗伯特·弗洛伊德。它的特点是,排序过程中使用了堆这种数据结构,利用堆的特性来选择最小(大)的元素。题目描述给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后的数据样例输入:1037 28 46 19 55 28 92 84 63 71样例输出:19 28 28 37 ...原创 2020-04-17 08:17:15 · 1420 阅读 · 1 评论 -
排序算法—直接选择排序
直接选择排序选择排序是每一趟从待排序的记录中选择最小(大)元素,顺序放在有序区间的最后,直到全部记录都放入有序区间。直接选择排序是选择排序的一种。题目描述给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后的数据样例输入:1037 28 46 19 55 28 92 84 63 71样例输出:19 28 2...原创 2020-04-08 11:05:14 · 1450 阅读 · 0 评论 -
排序算法—快速排序
快速排序快速排序是交换排序的一种,又称为划分交换排序,由C. A. R. Hoare在1960年提出。题目描述给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后的数据样例输入:1037 28 46 19 55 28 92 84 63 71样例输出:19 28 28 37 46 55 63 71 84 92...原创 2020-04-02 10:59:36 · 366 阅读 · 0 评论 -
排序算法—起泡排序
起泡排序题目描述起泡排序属于交换排序的一种,排序过程中小的元素不断“上浮”(交换到数组前面位置),就如同水里的气泡逐步冒出水面一样,故称为“起泡法”或“冒泡法”。给出一组数据,根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后的数据样例输入:1037 28 46 19 55 28 92 84 63 71样例输出:19 2...原创 2020-03-24 11:15:29 · 7846 阅读 · 1 评论 -
排序算法—希尔排序
希尔排序题目描述希尔排序(Shell’s Method)又称“缩小增量排序”(Diminishing Increment Sort),是由D.L.Shell在1959年提出。给出一组数据,根据由小到大顺序输出。希尔排序的时间性能是优于直接插入排序的,因为不是每个子序列都需要排序,这样在排序次数上得到了减少,并且每个子序列元素少于初序列,所以排序时需要比较和移动的次数也远少于初序列,在最后增量为1时,序列大部分元素已经趋于有序,所以排序的次数和难度也大幅度减少了。...原创 2020-03-23 10:31:35 · 1173 阅读 · 0 评论 -
排序算法—直接插入排序
直接插入排序题目描述给出一组数据,机器根据由小到大顺序输出。输入要求:输入一个整数n(数据长度)输入n个数据输出要求:输出由小到大排序后的数据样例输入:1037 28 46 19 55 28 92 84 63 71样例输出:19 28 28 37 46 55 63 71 84 92问题分析假设待排序的数据都存放在数组R[n]中,将R划分为两个子区间{R[0],R[i-1...原创 2020-03-18 11:30:16 · 754 阅读 · 0 评论