嗨,我想知道,如果你有一个整数数组,你将如何使用选择降序排序。我知道如何按升序排列,但我不知道如何按降序排列。
谢谢!
发布于 2010-01-31 04:50:24
Selection sort是一种比较排序。要反序排序,只需反转比较即可。
换句话说,使用<而不是>。
发布于 2010-01-31 04:52:42
选择排序是一种比较排序技术(使用比较运算符来获得可以升序或降序的顺序)。因此,要获得降序,只需将比较运算符从<转换为>即可。
您可能想要阅读更多关于selection sort的内容。
我希望这能帮到你。
干杯
发布于 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语言,但应该可以帮助你理解,如果你可以实现升序的选择排序,那么你也可以实现降序:
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;
}https://stackoverflow.com/questions/2169367
复制相似问题