排序思路堆排序(heap sort)是一种树形选择排序方法。他的特点是将R[1..n] (为配合二叉树的顺序存储结构,这里我们从1开始计算下标)看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中父结点和子节点之间的位置关系在无序区中选择最大(或者最小)的元素。堆性质:小根堆:父节点小于左右子...
餐前小点:VS Code只是一个代码编辑器,编译、运行这些活需要其他程序完成。C/C++ 编译器的选择,GCC/G++(MinFGW-w64)MinGW和MinGW-w64是两个不同的项目。MinGW本身已经很久没有更新了,故不推荐。为了方便,本文中的MinGW指的其实都是MinGW-w64。...
选择排序(Selection sort)是一种简单直观的排序算法。它首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。排序思路从无序区(R[i..n-1])中选出最小的元...
快速排序(Quicksort)是对冒泡排序的一种改进,它使用了分治法(Divide and conquer)策略,把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。排序思路快速排序把一个序列(list)分为两个子序列(sub-l...
交换排序的基本思想是两两比较待排序的元素,反序时进行交换,直至没有反序元素为止。冒泡排序是最简单的交换排序,也是很多人接触到的第一种排序算法。排序思路通过无序区相邻元素的比较,进行位置交换,使得最小的元素如气泡般逐渐往上“漂浮”直至“水面”,或者使得最大元素“沉到”最下面。排序算法以c为例,从...