排序算法
絮若尘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
选择排序
简单选择排序在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。#include using namespace std;void select_sort(int a[],int length){ for(int i原创 2015-04-24 16:18:50 · 333 阅读 · 0 评论 -
堆排序
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>原创 2015-04-24 17:28:44 · 389 阅读 · 0 评论 -
交换排序
冒泡排序在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。#include using namespace std;void bubble_sort(int a[],int length){ for(int i=0;i<length原创 2015-04-25 14:13:16 · 582 阅读 · 0 评论 -
归并排序
#include using namespace std;//将两个有序数组合并void merge_array(int a[],int m,int b[],int n,int c[]){int i=0,j=0,k=0;while(i{if(a[i]c[k++]=a[i++];elsec[k++]=b[j++];}while(ic[k++]=原创 2015-04-25 15:29:58 · 377 阅读 · 0 评论 -
插入排序
//直接插入排序#include using namespace std;void insert_sort(int a[],int length){ for(int i=1;i<length;i++) { if(a[i]<a[i-1]) { int x=a[i]; a[i]=a[i-1]; int j=i-1; while(a[j-1]>x&&j>=0)原创 2015-04-24 15:13:03 · 292 阅读 · 0 评论
分享