![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
一些算法实现
kevinmeanscool
Welcome to my GitHub : github.com/kevinmeanscool
展开
-
C++编写经典算法之一:选择性排序SelectionSort
“选择性排序”是数列排序的算法之一。其思路引点来源于经典的“可乐雪碧问题”“现有两杯饮料,一杯是雪碧,一杯是可乐,试问如何可以将两杯饮料交换?”“答:最简单的解决方案就是利用一个空杯,创造一个缓存区。”选择性排序就是利用线性搜索数列并找到当前最小值,通过不断的将当前最小值放置当前位置索引的算法。算法思路这是一个未排序的数列。首先,线性搜索数列,找到最小值。将最小值替换为列...原创 2019-02-21 22:55:06 · 404 阅读 · 0 评论 -
C++编写经典算法之一:插入排序InsertionSort
“插入排序”是数列排序的算法之一。其思路引点来自于我们平时打扑克牌的习惯。“我们在整理扑克牌时,往往会倾向于将无序的扑克牌升序或降序的排列,其方法在于拿起一张牌,与其他牌对比,如果是升序排列,那就与左边的牌进行对比,将其放在比此牌大且比此牌小的位置,重复这个过程,就会得到一个有序的牌组。”算法思路首先,得到一个随机的数列。左端的数字已完成排序。然后,取出那些尚未操作的左端的数...原创 2019-02-22 19:36:46 · 1390 阅读 · 0 评论 -
C++编写经典算法之一:快速排序QucikSort(通俗易懂)
快速排序“快速排序”时数列排序的算法之一。与其他的算法相比,它的特点是数字的比较和交换次数少,在许多情况下可以高速地进行排序。其思路引点来自于我们打牌中的一种排序方法:我们在抽牌时,可以先把所有的牌抽起来,然后选定一个牌,把比它小的牌都有序地放在左面,把比它大的牌都有序地放在右面,从而实现整理牌组的目的。快速排序则是优化了上述的过程,利用了分治的思想(上文《归并排序》已经解释过了,不懂的...原创 2019-02-27 16:05:40 · 1304 阅读 · 0 评论 -
C++编写经典算法之一:基数排序RadixSort(又称:桶子法BucketSort)(通俗易懂)
基数排序“基数排序”是数列排序的算法之一。属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)。基数,是同一类若干数据的集合,比如基数为个位数,那么个位数就是所有个位的数字的集合,通俗来说,你可以简单的理解为位数。“基数排序”通常有两种排序思路,一种是从低位到高位,称之为LSD(Least significant digital),相对的,另...原创 2019-02-28 16:53:44 · 1125 阅读 · 0 评论 -
C++编写经典算法之一:冒泡排序BubbleSort
“冒泡排序”是数列排序的算法之一其思路引点来源于经典的“可乐雪碧问题”“现有两杯饮料,一杯是雪碧,一杯是可乐,试问如何可以将两杯饮料交换?”“答:最简单的解决方案就是利用一个空杯,创造一个缓存区。”冒泡排序就是利用不断的对比、交换数据,从而实现对数列的排序。换言之,就是不断的拿起两个数,进行比较,如果是升序排序,就把小的放在前面,同理,降序排序,就将大的放在前面,不断的有序的重复这个过程,...原创 2019-02-16 19:06:51 · 858 阅读 · 0 评论 -
C++编写经典算法之一:归并排序MergeSort(通俗易懂)
归并排序"归并排序"是数列排序的算法之一。其思路引点来自于著名的“分治”思想和“递归思想”。“分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。”而递归的思想,做为一种算法在程序设计语言中广泛应...原创 2019-02-25 15:05:01 · 11281 阅读 · 4 评论