排序算法
文章平均质量分 66
dutbyy
这个作者很懒,什么都没留下…
展开
-
插入排序
直接插入排序实现:a...a+k-1为已排序好的,插入新值在a+k,其值为key,故将key通过swap(i,i-1)逐步移动至其位置,数组依旧有序。#include #include #include using namespace std;#define T 1000000int n,a[T];//插入排序void insort(int *a,int n){原创 2017-08-22 20:03:30 · 124 阅读 · 0 评论 -
shell排序
增量递减div/=2 减少swap次数分为div组组内进行直插排序#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//希尔排序:优化的插入排序void shellsort(int *a,int n){ int le原创 2017-08-23 09:22:46 · 458 阅读 · 0 评论 -
选择排序
选择排序每次选择未排序的元素的min放在其排序后的位置#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//选择排序void selsort(int *a,int n){ for(int i=0;i<n-1;i++)原创 2017-08-23 09:28:13 · 137 阅读 · 0 评论 -
冒泡排序
冒泡,每次遍历会将最大的值交换到末尾,遍历n-1次完成排序。#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//冒泡排序void bubsort(int *a,int n){ for(int i=0;i<n-1;i++)原创 2017-08-23 09:32:24 · 176 阅读 · 0 评论 -
折半插入排序
折半插入排序,优化了直接插入排序的寻找位置的过程,使用二分法寻找#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//折半插入排序int searchk(int *b,int l,int f,int key){ if(l==f原创 2017-08-23 09:41:31 · 136 阅读 · 0 评论 -
快速排序
分治法,排列(l,r),找到指定元素的最终位置key(左边均小于key,右边均大于key),然后递归(l,key-1),(key+1,r)#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],b[T];//快速排序void qsort(int *原创 2017-08-23 10:37:31 · 190 阅读 · 0 评论 -
基数排序
按位排序 ,一次从个位到最高位,是稳定排序方法。十个基类为例#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],tmp[T];//返回最高位数int maxbit(int *a, int n){ int d = 1; in原创 2017-08-23 11:50:07 · 143 阅读 · 0 评论 -
归并排序
分成1 2元数组排序,然后逐步归并两个数组。#include #include #include using namespace std;#define T 1000000#define INF 999999int n,a[T],tmp[T];void bs(int *a, int l, int r){ int t=(l+r)/2; int c1=l,c2=t原创 2017-08-23 14:52:19 · 115 阅读 · 0 评论 -
堆排序
HeapSort利用最大堆的性质,arr[o]永远是最大堆的最大值,先建堆,然后依次将arr[o]放到堆末尾,然后维护 i-1 其本质是选择排序,每次选择最大值放置末尾,但是寻找最大值的过程使用了维护堆来实现,维护为logn,和二分类似。#include #include #include using namespace std;#define T 1000000#defi原创 2017-08-24 15:55:32 · 143 阅读 · 0 评论