各种排序(一)

  最近开始学习排序。排序的作用不必多说,目前所见的比较坑的题不是用高精度运算就是用排序。正如Gromah大神所说:“不会排序学什么信息学竞赛啊!”于是在此总结一下,以便下一步学习。以下是目前学会的几个较简单的排序。

  参考资料:

  《信息学竞赛一本通》、《算法竞赛入门经典》、以及一个排序示意软件及其代码的所在网站:

  http://panthema.net/2013/sound-of-sorting

  正文:

  选择排序:

  原理:每一次排序从待排数据中选出一个最值元素,顺序放在待排序的数列的最前,直到全部待排序的数据元素排完。

  算法复杂度:O(n^2)

  实现:

  void ssort() //SelectSort

  {

  int i,n,temp,k=1;

  scanf("%d",&n)

  for(int i=1;i<=n;++i) scanf("%d",&a[i]);

  for(int i=1;i<=n-1;++i)

  {

  for(int j=1;j<=n;++j)

  {

  if(a[j]<a[k])k=j;< p="">

  }

  if(k!=1)

  {

  temp=a[i];

  a[i]=a[k];

  a[k]=temp;

  }

  }

  for(int i=1;i<=n;++i)printf("%d ",a[i]);

  printf("/n");

  }

  冒泡排序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值