
关于排序
相似的人适合打闹
这个作者很懒,什么都没留下…
展开
-
归并排序----二路归并
归并排序–二路归并eg:49 38 65 97 76 13 27算法思想:1、将原始序列看成7个只含有一个关键字的序列,所以这7个序列都是有序的(因为只有每个序列只有一个)2、两两归并,形成若干个有序二元组,若没有归并对象,则保持原样{38,49},{65,97},{13,76},{27};3、再次两两合并得到如下序列{38,49,65,79},{13,27,76};4、再合并,即...原创 2019-11-23 19:35:26 · 817 阅读 · 0 评论 -
归并排序(二路归并)
#include<stdio.h>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;void merge(int a[],int left,int mid,int right){ int L[100]= {0},R[100]= {0}; int n1=mid-left; ...原创 2020-01-09 19:02:13 · 182 阅读 · 0 评论 -
堆排序(大顶堆-板子)
#include<stdio.h>#include<algorithm>using namespace std;int a[100],n;void shiftdown(int i)//调堆过程{ int t,flag=0; while(i*2<=n && flag==0) { if(a[i*2]&...原创 2019-11-30 17:44:59 · 230 阅读 · 0 评论 -
堆排序(小顶堆--板子)
#include<stdio.h>#include<algorithm>using namespace std;int a[100],n;void shiftdown(int i)/// 利用二叉树的性质 i 为父亲节点 2i为左孩子 2i+1为右孩子{ int t,flag=0; while(i*2<=n && fla...原创 2019-11-30 17:46:40 · 185 阅读 · 0 评论 -
快速排序
#include<stdio.h>#include<algorithm>using namespace std;int a[100];void quicksort(int left,int right){ int i,j,temp; if(left>right) return; temp=a[left]; ...原创 2020-01-09 19:02:49 · 116 阅读 · 0 评论 -
冒泡排序
#include<stdio.h>#include<algorithm>using namespace std;void Bubblesort(int a[],int n){ int flag; for(int i=0; i<n-1; i++) { flag=0; for(int j=n-1; j&g...原创 2020-01-09 19:03:03 · 140 阅读 · 0 评论 -
希尔排序
#include<stdio.h>void insert(int a[],int gap,int i){ int x=a[i],j; for(j=i-gap; j>0 && x<a[j]; j-=gap) a[j+gap]=a[j]; a[j+gap]=x;}void shellsort(int a[],i...原创 2020-01-09 19:03:10 · 170 阅读 · 0 评论 -
折半插入排序
#include<stdio.h>void Bisort(int a[],int n){ int low,high,mid; for(int i=2; i<=n; i++) { int x=a[i]; low=1,high=i-1; while(low<=high) { ...原创 2020-01-09 19:03:35 · 146 阅读 · 0 评论 -
直接插入排序
算法思想:以前面元素有序为基准,当前元素与已经排好的序列进行比较,找到对应该元素的位置将以排好的元素后移,插入当前元素eg:66 4 7 3 1 5第一趟:6为已排好的序列, 4插入结果: 4 6 7 3 1 5第二趟:4,6为已排好的序列,7插入结果: 4 6 7 3 1 5第三趟:4,6,7为已排好的序列,3插入结果: 3 4 6 7...原创 2019-11-18 17:05:58 · 330 阅读 · 0 评论