首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择排序帮助

选择排序帮助
EN

Stack Overflow用户
提问于 2010-01-31 04:45:33
回答 5查看 1.2K关注 0票数 0

嗨,我想知道,如果你有一个整数数组,你将如何使用选择降序排序。我知道如何按升序排列,但我不知道如何按降序排列。

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2010-01-31 04:50:24

Selection sort是一种比较排序。要反序排序,只需反转比较即可。

换句话说,使用<而不是>

票数 2
EN

Stack Overflow用户

发布于 2010-01-31 04:52:42

选择排序是一种比较排序技术(使用比较运算符来获得可以升序或降序的顺序)。因此,要获得降序,只需将比较运算符从<转换为>即可。

您可能想要阅读更多关于selection sort的内容。

我希望这能帮到你。

干杯

票数 2
EN

Stack Overflow用户

发布于 2010-01-31 04:52:58

选择排序很简单,你看第一个元素,如果它是> elementi,那么你就交换它。例如:

8 5 1 9

从元素8..look开始,在下一个元素它更小,所以交换它:

5 8 1 9

现在看看下面的元素1,它也小于5个掉期位置

1 8 5 9

最后9>1移动到下一个元素(8),然后使用compare...keep执行该操作,直到

1 5 8 9

现在按降序进行反向排序也是同样的算法,但您只需检查它是否为>而不是<。

例如,

1 9 5 8

从1开始,是9> 1,是的,所以交换它:

9 1 5 8

保持going..move到第二位数是1< 5,是的,交换它:

9 5 1 8

继续这样做,直到你有了

9 8 5 1

这里有一些伪代码,它不是Java而是C语言,但应该可以帮助你理解,如果你可以实现升序的选择排序,那么你也可以实现降序:

代码语言:javascript
复制
 while(pTemp2 != NULL)
   {   
       //we implement a selection sort 
       //check if incoming node->datum with each node in the list
       //swap values if >
      if (pTemp2->datum > pTemp->datum)
         {
         //swap the values
         int temp = pTemp->datum;
         pTemp->datum = pTemp2->datum;
         pTemp2->datum = temp;
         }
         //advance the pointer
      pTemp2=pTemp2->next;
   }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2169367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档