![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++数据结构与算法
文章平均质量分 61
TB_Master
all is well
展开
-
归并排序(Merge Sort)
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。分治法 可以通俗的解释为:把一片领土分解,分解为若干块小部分,然后一块块地占领征服,被分解的可以是不同的政治派别或是其他什么,然后让他们彼此异化。 分治法的精髓: 分–将问题分解为规模更小的子问题; 治–将这些规模更小的子问题逐个击破;原创 2017-06-14 16:53:53 · 233 阅读 · 0 评论 -
冒泡排序(Bubble Sort)
最简单的排序 冒泡排序几乎是所有排序中思想最为简单的排序,很好理解。 每次比较两个数,将较大(或较小)的数升上去,这个过程就像气泡逐渐上升一样。这里将较大的数升上去为例:原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |第一趟排序(外循环)第一次两两比较6 > 2交换(内循环)交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |交换后状态| 2 | 6 | 4 | 1 |原创 2017-05-26 23:55:17 · 229 阅读 · 0 评论 -
选择排序(select sort)
选择排序算法就是在待排序列中每次找到最大(最小)的关键字,并且放在已排好序的子序列的前面(后面),直到排序 结束。时间复杂度为O(n^2) 稳定性:不稳定C++实现代码:template <typename T>void SelectSort(T arr[], int n){ for (int i = 0; i < n; i++) { int current原创 2017-05-30 13:15:11 · 331 阅读 · 0 评论 -
插入排序(Insert Sort)
插入排序顾名思义,应该是在有序的序列中插入一个数据,并经过一系列变化,成为一个新的有序的序列。像是在玩扑克牌时,抓到的第一张牌是5,放在手里,就是一个有序的序列;抓到的第二张牌是3,则将3放在5的右面,又形成了一个有序的序列;第三张抓到4,则从手上最后一张开始比较,4比3大,则4应该在3的左边,再和5比较,4比5小,则4应该在5的右边,至此把4插入到5和3之间,形成一个新的有序的序列。时间复杂度:O原创 2017-05-31 16:16:48 · 450 阅读 · 1 评论