基本排序算法的一些零碎补充

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了基本排序算法的一些零碎补充脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

做题被卡了,原来还是因为基础不扎实。

  1. 冒泡排序:排序时,比较相邻的两个元素是其特点;
  2. 冒泡排序和插入排序稳定,而选择排序不稳定;

    基本排序算法的一些零碎补充

  3. 以下这段代码被我误认为是冒泡排序的一种写法,其实它是选择排序的一种写法。因为它并不总是进行相邻两个元素的比较,而且每当第二重循环结束,a[i]存着的都是a[i~n]的最大值。

    基本排序算法的一些零碎补充

  4. 不稳定的排序算法当然可以被改造成稳定的,代价是牺牲时间和空间效率。比如下面这个是选择排序的一种稳定写法
#include<iostream>
int n,a[1005],b[1005],sign[1005];
int main() {
	std::cin>>n;
	for(int i=1; i<=n; i++)
		std::cin>>a[i];
	for(int i=1; i<=n; i++) {
		int min=2147483647,pos=0;
		for(int j=1; j<=n; j++) {
			if(!sign[j]&&a[j]<min) {
				min=a[j];
				pos=j;
			}
		}
		sign[pos]=1;
		b[i]=pos;
	}
	for(int i=1; i<=n; i++)
		std::cout<<a[b[i]]<<' ';
	return 0;
}

脚本宝典总结

以上是脚本宝典为你收集整理的基本排序算法的一些零碎补充全部内容,希望文章能够帮你解决基本排序算法的一些零碎补充所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: