选择排序以在未排序的数组中找到最大的数字,有人会引导我通过此操作

问题描述 投票:0回答:2

所以,我基本上是想对数组进行排序以找到最大的数,然后将其移到末尾并与当前元素交换掉。我一直想知道自己到底在做什么错,我试着观看有关该视频的视频,但所有这些都只是对数组进行排序以找到最小的元素。有人可以请我指导一下,谢谢。

#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

所以,我基本上是想对数组进行排序以找到最大的数,然后将其移到末尾并与当前元素交换掉。我想知道自己实际上在做什么错,我...

c++
2个回答
0
投票

对于(i = 9; i> = 0; i-)


0
投票

[当您研究排序算法时,它们通常从广义排序的概念开始。以升序或降序对数字排序只是这种排序的一种可能。因此,例如std::sort()以功能为参数。该函数仅包含两个元素,并告诉算法第一个元素是否应位于第二个元素之前。请查看相应的文档,但请记住,它需要非常仔细的阅读,因为通常只暗示某些内容。

© www.soinside.com 2019 - 2024. All rights reserved.