• 关于 二路归并排序 的搜索结果

回答

排序算法一般分为以下几种: (1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序);(2)线性时间非比较类排序:计数排序、基数排序和桶排序。

祁同伟 2019-12-02 01:17:23 0 浏览量 回答数 0

回答

排序算法一般分为以下几种: (1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序); (2)线性时间非比较类排序:计数排序、基数排序和桶排序。

boxti 2019-12-02 01:18:45 0 浏览量 回答数 0

问题

随机生成10个待排序数据,用C语言写出二路归并排序算法

知与谁同 2019-12-01 20:11:55 614 浏览量 回答数 3

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

回答

1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的 选择排序、希尔排序、快速排序、堆排序是不稳定的 2.时间复杂性比较 插入排序、冒泡排序、选择排序的时间复杂性为O(n2) 其它非线形排序的时间复杂性为O(nlog2n) 线形排序的时间复杂性为O(n); 3.辅助空间的比较 线形排序、二路归并排序的辅助空间为O(n),其它排序的辅助空间为O(1); 4.其它比较 插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。 反而在这种情况下,快速排序反而慢了。 当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。 若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。 当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。 当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下。 宜用归并排序。 当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。

一键天涯 2019-12-02 01:17:46 0 浏览量 回答数 0

回答

H5edu教育Html5开发为您解答: 1.稳定性比较 插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的 选择排序、希尔排序、快速排序、堆排序是不稳定的 2.时间复杂性比较 插入排序、冒泡排序、选择排序的时间复杂性为O(n2) 其它非线形排序的时间复杂性为O(nlog2n) 线形排序的时间复杂性为O(n); 3.辅助空间的比较 线形排序、二路归并排序的辅助空间为O(n),其它排序的辅助空间为O(1); 4.其它比较 插入、冒泡排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度。 反而在这种情况下,快速排序反而慢了。 当n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。 若待排序的记录的关键字在一个明显有限范围内时,且空间允许是用桶排序。 当n较大时,关键字元素比较随机,对稳定性没要求宜用快速排序。 当n较大时,关键字元素可能出现本身是有序的,对稳定性有要求时,空间允许的情况下。 宜用归并排序。 当n较大时,关键字元素可能出现本身是有序的,对稳定性没有要求时宜用堆排序。

玄学酱 2019-12-02 01:17:33 0 浏览量 回答数 0

问题

用二路归并排序算法实现N个元素的排序

知与谁同 2019-12-01 20:11:09 680 浏览量 回答数 1

问题

归并排序 7月15日 【今日算法】

游客ih62co2qqq5ww 2020-07-16 07:43:30 7 浏览量 回答数 1

回答

二路归并排序每趟排序结果: 第一趟:(1,29,)(25,47,)(12,58,)(10,51) 第二趟:(1,25,29,47)(10,12,51,58) 第三趟:(1,10,12,25,29,47,51,58)

美人迟暮 2019-12-02 01:18:27 0 浏览量 回答数 0

回答

#include<stdio.h> #include<stdlib.h> typedef int RecType;//要排序元素类型 void Merge(RecType *R,int low,int m,int high) {//将两个有序的子文件R[low..m)和R[m+1..high]归并成一个有序的子文件R[low..high] int i=low,j=m+1,p=0; //置初始值 RecType *R1; //R1是局部向量 R1=(RecType *)malloc((high-low+1)*sizeof(RecType)); if(!R1)return; //申请空间失败 while(i<=m&&j<=high) //两子文件非空时取其小者输出到R1[p]上 R1[p++]=(R[i]<=R[j])?R[i++]:R[j++]; while(i<=m) //若第1个子文件非空,则复制剩余记录到R1中 R1[p++]=R[i++]; while(j<=high) //若第2个子文件非空,则复制剩余记录到R1中 R1[p++]=R[j++]; for(p=0,i=low;i<=high;p++,i++) R[i]=R1[p];//归并完成后将结果复制回R[low..high] } void MergeSort(RecType R[],int low,int high) {//用分治法对R[low..high]进行二路归并排序 int mid; if(low<high){//区间长度大于1 mid=(low+high)/2;//分解 MergeSort(R,low,mid);//递归地对R[low..mid]排序 MergeSort(R,mid+1,high); //递归地对R[mid+1..high]排序 Merge(R,low,mid,high);//组合,将两个有序区归并为一个有序区 } } void main() { int a[8]={21,34,56,43,99,37,78,10};//这里对8个元素进行排序 int low=0,high=7;//初始化low和high的值 MergeSort(a,low,high); for(int i=low;i<=high;i++)printf("%d ",a[i]);//输出测试 printf("\n"); }

晚来风急 2019-12-02 01:18:07 0 浏览量 回答数 0

问题

十大经典排序算法大梳理 7月6日 【今日算法】

游客ih62co2qqq5ww 2020-07-07 02:04:48 1002 浏览量 回答数 1

问题

程序员必须掌握的核心算法有哪些?

问问小秘 2020-02-19 16:57:02 744 浏览量 回答数 4

回答

/* 快排么。网上一搜就一堆了。算法只是一种思想或说成一种方法而已,并非就C语言。其它语言也一样 快排也有点像二路归并:从一个无序的序列中随机取出一个值q做为支点,然后把大于q的放到一边,小于q的放到q的另一边,然后再以q为分界点,分别对q的两边 进行排序(快排时直接再对q两边重新取支点,整理,再取支点,...直到支点两旁都有序。也就是支点两旁只有一个数时) */ #include <stdio.h> #include <stdlib.h> int Qsort(int p[],int beg,int end) { if(beg+1>=end)return 0;//退出递归 int low,hight,q; low=beg; hight=end; q=p[low];//q为支点,其实q可以为随机数。但相应以下程序就要改了 while(1){ while(low<hight && p[hight]>q)hight--; if(low>=hight)break; p[low++]=p[hight]; while(low<hight && p[low]<q)low++; p[hight++]=p[low]; } p[low]=q; Qsort(p,beg,low-1); Qsort(p,low+1,end); } int main() { int i,a[]={1,32,6,4,54,654,6,6,2,76,76,7,66,5,544,334,34,78}; Qsort(a,0,sizeof(a)/4-1); for(i=0;i<sizeof(a)/4;i++)printf(" %d ",a[i]); system("pause"); return 0; } 快速排序的优势和支点元素的选择有关系。 所选支点元素每次递归后都在最前面或最后面。这样情况就会最差了。 我们知道一般的排序。(如冒泡。。)在一个数组p[m,n]中排序。都是确定最大或最小,而确定最大值(最小值)要经过n-m-1次比较。 而整个过程就差不多是(n-m-1)!次比较。 快排中:一次比较可以确定支点元素的位置。若p[m,q,n](q为支点元素)。当然确定第一个元素也是要比较(n-m-1)次。但第二个,第三个(第二层)就是(q-m-1)和(n-q-1)次比较。 明显q的值若为m或n,快排就没有什么优势了

小哇 2019-12-02 01:19:04 0 浏览量 回答数 0

问题

不搞清这8大算法思想,刷再多题效果也不好的 7月23日 【今日算法】

游客ih62co2qqq5ww 2020-07-29 11:10:09 3 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播