排序算法
cysAAAAA
这个作者很懒,什么都没留下…
展开
-
交换排序之“快速排序”(C++实现)
快速排序(quick sort)是冒泡排序改进而来的,基本思想是在待排序的n个元素中,取第一个元素作为基准,将该元素放在适当的位置,将这个数据序列分为两部分,到这里称为一趟排序。此时基准数左边的数都比它小,基准数右边的数都比大。接下来便用同样的方法分别对左右两边的数据进行排序,直到序列中没有元素或只有一个元素。快速排序每趟仅将一个元素归位。接下来看一趟划分的代码,原理就是设置两个指示器i和...原创 2019-05-06 23:38:31 · 697 阅读 · 0 评论 -
交换排序之“冒泡排序”(C++实现)
思路冒泡排序的基本思路是通过相邻元素直接的比较和交换位置,使较小的元素如气泡一般逐渐往上漂浮。实现在冒泡排序中,但某一趟不出现任何元素交换时,说明已经排序好了,这时候可以结束算法代码比较简单,便直接贴上来了void bubbleSort(int R[], int n){ int i, j; bool exchange; for (i = 0; i &l...原创 2019-05-07 14:25:31 · 243 阅读 · 0 评论 -
插入排序之“直接插入排序”(C++实现)
直接插入排序:分有序区和无序区,初始时有序区只有一个元素,然后从无序区选第一个数跟无序区进行比较并插入到合适的为止。下面直接附上代码#include <iostream>using namespace std;void insertSort(int R[], int n){ int i, j, tmp; for (i = 1; i < n; i+...原创 2019-05-07 14:40:18 · 227 阅读 · 0 评论 -
插入排序之“折半插入排序”(C++实现)
定义由于直接插入排序产生了有序区,所以可以采用折半查找法找到插入的位置,这样的插入排序称为折半插入排序因此折半插入有一个重要的条件就是元素大小排列有序(从大到小或从小到大)实现#include <iostream>using namespace std;void binInsertSort(int R[], int n){ int i, j, low, ...原创 2019-05-07 14:44:59 · 717 阅读 · 0 评论 -
插入排序之“希尔排序”(C++实现)
希尔排序(shell sort)是一个减少增量的排序算法,其中也运用了直接插入排序练习例:设待排序的表有10个元素,其关键字分别为(9,8,7,6,5,4,3,2,1,0),说明采用希尔排序方法进行排序的过程。解:第一趟排序时,d=10/2=5;整个表被分成5组,即(9,4)(8,3)(7,2)(6,1)(5,0),各组采用直接插入排序,结果为(4,9)(3,8)(2,7)(1,6)(...原创 2019-05-07 14:49:12 · 368 阅读 · 0 评论 -
选择排序之”简单选择排序“(C++实现)
思路选择排序是每一趟从待排序的元素中选出关键字最小的元素,放在已排序好的序列的最后。选择排序适合从大量的元素中选择一部分排序元素,例如从10000个元素中选择出大小为前10 的元素就适合用选择排序。实现#include <iostream>using namespace std;void selectSort(int R[], int n){ int i,...原创 2019-05-07 14:53:51 · 183 阅读 · 0 评论