![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
asd001110
不想写
展开
-
选择排序
//选择排序是每次都选取所有剩余序列中的最小值,然后将其与最前面值互换(先找最小值,最后换一次) #include using namespace std; void swap(int *a,int *b) { int tmp = *a; *a = *b; *b = tmp; } void select_sort(int a[],int n) { for(int i=0;i<原创 2016-05-19 23:50:28 · 168 阅读 · 0 评论 -
冒泡排序
//冒泡排序和插入排序的区别:冒泡排序每次都将剩余序列的最小值插到现有队列最前面(找一次换一次) #include using namespace std; void swap(int *a,int *b) { int tmp = *a; *a = *b; *b = tmp; } void bub_sort(int a[],int n) { for(int i=0;i<n-1;i+原创 2016-05-19 23:54:51 · 196 阅读 · 0 评论 -
快排
#include using namespace std; void swap(int *a,int *b) { int tmp = *a; *a = *b; *b = tmp; } //思想:1、先从数列中选取一个数作为基准数 //2、将大于次数的值放在其右边,小于的放在左边 //3、再对左右区间重复2,直到各区间只有一个数 void quick_sort(int a[],int lo原创 2016-05-19 23:57:11 · 239 阅读 · 0 评论 -
归并排序
#include using namespace std; void swap(int *a,int *b) { int tmp = *a; *a = *b; *b = tmp; } //分治法,将数组分成两组A,B若这两组内数据都是有序的,将两个有序数列合并 void merge_arr(int a[],int first,int mid,int last,int tmp[]) {原创 2016-05-19 23:58:10 · 201 阅读 · 0 评论 -
插入排序
#include using namespace std; void swap(int *a,int *b) { int tmp = *a; *a = *b; *b = tmp; } //选择排序是每次都选取所有剩余序列中的最小值,然后将其与最前面值互换(先找最小值,最后换一次) //冒泡排序和插入排序的区别:冒泡排序每次都将剩余序列的最小值插到现有队列最前面(找一次换一次) //插入原创 2016-05-19 23:56:05 · 185 阅读 · 0 评论 -
堆排序
最近看了很多网上的堆排序算法,有一些讲解的很是透彻,但代码实现总是多多少少存在问题,我自己最近通过学习写了一个测试代码,在VS上通过了测试,希望对大家有所帮助,其中存在一些不足,也欢迎大家来一起改进、学习。#include using namespace std; //堆本身是一个完全二叉树,可以用数组存储,叶子节点的索引号是父节点的(i-1)/2 //下面给出小顶堆的实现代码 void s原创 2016-05-22 09:42:16 · 185 阅读 · 0 评论