C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数组a [i]按降序打印,但我的逻辑是升序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
你能告诉我为什么我总是按降序排列a [i]吗?请帮忙.

for(i=0;i<10;i++)  
{    
    for (j=0;j<10;j++)
    {   
       if(a[i]>=a[j])
       { 
          temp=a[i];
          a[i]=a[j];
          a[j]=temp;
       }
    }
}

解决方法

问题是你的排序运行两个完整的循环,比较所有i和j对,包括i大于j的那些(此时你不应该交换项目).为了使选择排序*起作用,它需要仅从数组的未排序部分中选择其交换候选.

以下是如何修复您的实现:

for(i=0;i<10-1;i++) // You do not need to touch the last element,so end at 10-1
{    
    for (j=i+1;j<10;j++) // Make it j = i+1
    {   
       if(a[i] > a[j]) // >,not >= : no need to swap when two items are equal
       { 
          temp=a[i];
          a[i]=a[j];
          a[j]=temp;
       }
    }
}

 * Selection Sort是您正在实施的排序算法的奇特名称.

大佬总结

以上是大佬教程为你收集整理的数组a [i]按降序打印,但我的逻辑是升序全部内容,希望文章能够帮你解决数组a [i]按降序打印,但我的逻辑是升序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

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