所以,我基本上是想对数组进行排序以找到最大的数,然后将其移到末尾并与当前元素交换掉。我一直想知道自己到底在做什么错,我试着观看有关该视频的视频,但所有这些都只是对数组进行排序以找到最小的元素。有人可以请我指导一下,谢谢。
#include <iostream> using namespace std; int main(){ int const LENGTH = 10; int myList[LENGTH] = {2, 56, 34, 25, 73, 46, 89,10, 5, 16}; int i, x, max, temp; for(i=0; i< 10;i++) { int max = i; for(int j=i+1; j <10; j++) { if(myList[max] < myList[j]) { max = j; } } temp = myList[max]; myList[max] = myList[i]; myList[i] = temp; for(x=0;x<10;x++) { cout << myList[x] << " "; } cout << endl; } return 0; }
出于某种原因,我的代码输出了此结果,它很好但是却倒退了
89 56 34 25 73 46 2 10 5 16
89 73 34 25 56 46 2 10 5 16
89 73 56 25 34 46 2 10 5 16
89 73 56 46 34 25 2 10 5 16
89 73 56 46 34 25 2 10 5 16
89 73 56 46 34 25 2 10 5 16
89 73 56 46 34 25 16 10 5 2
89 73 56 46 34 25 16 10 5 2
89 73 56 46 34 25 16 10 5 2
89 73 56 46 34 25 16 10 5 2
所以,我基本上是想对数组进行排序以找到最大的数,然后将其移到末尾并与当前元素交换掉。我想知道自己实际上在做什么错,我...
对于(i = 9; i> = 0; i-)
[当您研究排序算法时,它们通常从广义排序的概念开始。以升序或降序对数字排序只是这种排序的一种可能。因此,例如std::sort()
以功能为参数。该函数仅包含两个元素,并告诉算法第一个元素是否应位于第二个元素之前。请查看相应的文档,但请记住,它需要非常仔细的阅读,因为通常只暗示某些内容。