发布网友 发布时间:2022-04-24 19:09
共3个回答
热心网友 时间:2023-07-28 22:57
假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。
即可说明它的不稳定性;而对于稳定的排序算法,必须对算法进行分析从而得到稳定的特性。需要注意的是,排序算法是否为稳定的是由具体算法决定的,不稳定的算法在某种条件下可以变为稳定的算法,而稳定的算法在某种条件下也可以变为不稳定的算法。
扩展资料:
基数排序按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的。
先按低优先级排序,再按高优 先级排序,最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以其是稳定的排序算法。
热心网友 时间:2023-07-28 22:57
struct Element{热心网友 时间:2023-07-28 22:58
struct{int key,val;}a[n];追答随机生成a
将a复制到b
使用要测试的排序算法按照key对b排序
逐一比较a与b对应元素val的值,如果有不同,则说明不稳定。
由于你随机生成数组,故未必能说明一定稳定。