数据结构排序问题,来思路即可
发布网友
发布时间:2022-05-06 04:02
我来回答
共4个回答
热心网友
时间:2022-05-22 02:51
可采用冒泡排序方法:
分析如下:
根据你的要求,特点,列表中大多数元素是正确的。只有少数不正确。
那就要求采用排序时比较次数和交换次数较少的算法(对于此情况)
冒泡排序:相邻两两比较,在每一趟过程中,把最大或最小值冒泡到上面,每次都会得到一个更有序的列表。
如果只有几个元素不在自己的位置(如有5个),则最大进行5+1趟冒泡即可,而且不正确的元素
离正确的位置很近,所以交换的次数就少。
插入排序:把队列中的元素依次插入到有序的列表中。如果不正确的元素在后面,则前面的比较次数则太多。
希尔排序:也是分组进行的插入排序方法。
堆排序:是一种适用于大数据的外排序
直接选择排序:从无序的队列中依次选择中最小或最大者放到有序表的后面。如果不正确的元素在中间,则比较和查找的次数会比较多。
快速排序:不稳定的排序。而且对于有序的表来说,不是最理想的。
归并排序:是稳定的排序,但对于本题,多余的比较量很大,在已经基本有序的列表中,就无必要了。
热心网友
时间:2022-05-22 04:09
具体情况具体分析,哪一种快,就用快一种~
不过建议使用:堆排序追问有无特定依据??或什么定理?
热心网友
时间:2022-05-22 05:44
如果是基本排序,直接插入最好
堆排序和快排首先排除掉,因为堆排序重建堆,很耗时间,快排也是枢纽元几乎就属于最差选择模式
冒泡和直接选择是始终如一的慢
归并也快,但是要临时数组,空间代价比较大,
希尔排序的时间复杂度太难确定了,一般直接排除
热心网友
时间:2022-05-22 07:35
快速
数据结构拓扑排序怎么算?
根据边集画出图 这道题就四个结点 <1,2>表示有一条从结点1到结点2的有向路径,就是从1可以去2,但是不能从2到1.画的时候都遵循这个规律即可。然后是拓扑的规则 首先找到一个只有出没有进的结点。你会发现只有结点1符合要求,那么去掉结点1和与结点1有关系的边,那么就剩下结点2、3、4.这个...
数据结构 直接插入排序的排序过程问题
初始:[43],17,12, 8,70 第一趟:[17,43],12, 8,70 第二趟:[12, 17,43], 8,70 第三趟:[ 8, 12, 17,43],70 第四趟:[ 8, 12, 17,43,70]原因是:直接插入算法中,插入比较的元素是从第二个元素开始的,即第一个元素就是有序的,从第二个元素开始与前面的元...
数据结构(八)排序
n个元素归并并排序,需要归并 躺 时间复杂度O(nlog 2 n) ,空间复杂度为O(n)基数排序不基于比较和移动排序,而基于关键字各位的大小进行排序 递减序列过程:空间复杂度O(r),时间复杂度O(d(m+n))使用归并排序,最小只需在内存中分配3块大小的缓冲区,即可对任意一个大文件进行排序 归并排序要...
这道数据结构题怎么做?
假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一躺快速排序的算法是:1)、设置两个变量I、J,排序开始的时候I:=1,J:=N;2)以第一个数组元素作为...
数据结构基数排序问题
这样也就不会破坏原来k2的排序。例如第一趟对k2排好序后,<k1,k2>线性表为<1,1><2,1><5,2><2,2><4,4> 选用插入排序保证算法稳定,那么<2,1><2,2> 两组数k1相同,在排序后k2相对顺序不变,结果就正确,如果选用选择排序,由于算法不稳定,可能排序后结果成了<2,2><2,1> ...
#数据结构#快速排序#求解快速排序,帮我一步步写出第一次确定分界元素位...
以49为界对49 38 65 97 76 13 27从小到大排序 先从最右边开始查找比49小的元素,先找到27,记下27的位置j,将49与j位置互换,序列变为 27 38 65 97 76 13 49 然后在从左边开始查找比49大的树,找到65,记下位置i,将i位置和j位置数据互换,序列变为 27 38 49 97 76 13 65 因为i !
关于数据结构排序算法的问题
冒泡排序:在最优情况下只需要经过n-1次比较即可得出结果,(这个最优情况那就是序列己是正序,从100K的正序结果可以看出结果正是如此),但在最坏情况下,即倒序(或一个较小值在最后),下沉算法将需要n(n-1)/2次比较。所以一般情况下,特别是在逆序时,它很不理想。它是对数据有序性非常敏感...
大学数据结构与算法常用排序算法
数据结构常用算法排序算法 写在前面 排序本质上就是按照某种顺序将一组数排好,分多次重复进行,每次只负责把一个数字放到合适的位置上 两种思路:①先确定一个数字,然后根据数据找合适的位置;②先确定一个位置,根据位置找合适的数字;冒泡排序算法 先确定位置,选最前面或者最后面,假设选择了最后面...
数据结构的题 帮忙下 谢谢
5、直接选择排序的思路是:总共遍历n-1次,其中第i次从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换,所以第i次需要比较n-i次,总共需要(n-1)+(n-2)+...+(n-n+1)=n(n-1)/2次比较 6、哈夫曼树中没有度为1的结点,而且权值所在点必为叶子,所以根据n0=n2+1,n2=8-1=7,...
数据结构 简答题 求助
(1) 从小到大排序 2 4 6 7 11 19 25 32 (这是有序序列)(2) 每次提取最小的两个结点,取结点2和结点4,组成新结点N6,其权值=2+4=6, 取数值较小的结点作为左分支,结点2作为左分支,而结点4就作为右分支.(3) 将新结点N6放入有序序列,保持从小到大排序: 6 N6 7 11 19 25 32(4) 重复步骤(2)...