【新手向】 C++ 使用选择排序算法对若干个数进行排序

针对入门级新手的C++代码分享

编程新人,前来报到!
最近老师布置的C++作业对于我这种纯萌新来讲实在是让人头大 心潮 澎湃,但是我在网上找前辈们的代码学习时发现了一个问题——大佬们的代码都是简洁明了,甚至有所减省的,这对于我们这种小菜鸡而言有点不太友好 高深莫测,所以我就把本菜鸡自己写的代码po上来供大家批评指正啦!
这次贴上来的代码是解决“使用选择排序算法对若干个数进行排序” 这个问题的,欢迎各位大佬们前来锤爆,也供一些像我一样的萌新来参考参考~

#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
  int a,b,c,d,e,i,j,k;
  cin>>a;                   //输入需要排序的数字个数
  int *w=new int[a];        //定义一个不定数组w,w的长度即为a,且数组内的数据是可以手动输入的
  for (i=0;i<a;i++)         //利用for循环体来输入w数组中的数据
  {
      cin>>w[i];
  }
  for (e=0;e<a;e++)
  {
    for(j=e+1;j<a;j++)
    {
        if (w[e]>w[j])      //若需要从大到小排序,则将>替换为<即可
          swap(w[e],w[j]);  //利用swap函数,交换w[e]与w[j]的值
    }      
  }
  for (k=0;k<a;k++)         //最后再利用for循环体输出数组w中的值,此时排序已完成,按照原数组顺序输出即可
  {
      cout<<w[k]<<" ";
  }
  system("pause");          //若程序报错,可替换为getchar();
  return 0;
}

接下来我对里面的for循环嵌套稍微就着我的理解解释一下,大佬们可以直接忽略了。首先是外层的for循环选出w数组中的第一个数,即w[0]所对应的数,这个目标在内层循环中的if语句条件中实现;其次是内层循环从数组中选择下一个数,即w[1]所对应的数,这个目标在也if语句条件中实现;之后便是两数相比:若第二个数w[1]小于第一个数w[0],则将w[0]所对应的数与w[1]互换,使得w[0]<w[1];若是w[1]大于w[0],则无事发生。这样一来,随着内层循环的不断进行,w[0]始终会是两数之间较小的一方,最终即为最小值。之后执行外层循环的第二步w[1]。最后完成从小到大的排序。
以上~
我的代码是本菜鸡从网络上大佬们的文章里七拼八凑,珠海拾遗所得,虽然加入了一些自己的理解以及一些编程时的习惯,但如果侵权了,烦请告知!

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值