Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我能';Don’我不知道用for循环5次进行冒泡排序的逻辑_C++_Algorithm_Bubble Sort - Fatal编程技术网

C++ 我能';Don’我不知道用for循环5次进行冒泡排序的逻辑

C++ 我能';Don’我不知道用for循环5次进行冒泡排序的逻辑,c++,algorithm,bubble-sort,C++,Algorithm,Bubble Sort,做冒泡排序比使用给定代码复制和粘贴for循环5次更有效的方法是什么 我的逻辑是检查数组[1](9)是否比数组[2](6)大,因为它会交换元素。但是一旦它到达数组的末尾,我必须复制并粘贴for循环,这样冒泡排序算法将重新开始检查数组 我没有使用变量,而是使用动态分配,因为它更容易理解 #include <iostream> int main() { int array[] = { 9, 6, 2, 8, 3, 1, 7, 5, 4 }; int temp;

做冒泡排序比使用给定代码复制和粘贴for循环5次更有效的方法是什么

我的逻辑是检查数组[1](9)是否比数组[2](6)大,因为它会交换元素。但是一旦它到达数组的末尾,我必须复制并粘贴for循环,这样冒泡排序算法将重新开始检查数组

我没有使用变量,而是使用动态分配,因为它更容易理解

#include <iostream>

int main()
{
    int array[] = { 9, 6, 2, 8, 3, 1, 7, 5, 4 };

    int temp;

    for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }

    for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }

    for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }

    for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }

    for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }

    for (int i = 0; i < 8; i++)
    {
        std::cout << array[i] << std::endl;
    }

}
#包括
int main()
{
int数组[]={9,6,2,8,3,1,7,5,4};
内部温度;
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
对于(int i=0;i<8;i++)
{

std::cout您似乎已经知道可以通过使用循环重复某些内容。如果要重复循环,只需将其放入循环中:

for (int j = 0; j < 8; j++)
  for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }
for(int j=0;j<8;j++)
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
我不清楚你为什么只想这样做5次,虽然5次没有什么特别的


另外,请注意,这不是编写冒泡排序的最有效方法(例如,您不需要检查已冒泡的元素)。

您似乎已经知道可以使用循环重复某些内容。如果要重复循环,只需将其放入循环中:

for (int j = 0; j < 8; j++)
  for (int i = 0; i < 8; i++)
    {
        if (array[i] > array[i + 1])
        {
            temp = array[i];
            array[i] = array[i + 1];
            array[i + 1] = temp;
        }
    }
for(int j=0;j<8;j++)
对于(int i=0;i<8;i++)
{
if(数组[i]>数组[i+1])
{
温度=阵列[i];
数组[i]=数组[i+1];
阵列[i+1]=温度;
}
}
我不清楚你为什么只想这样做5次,虽然5次没有什么特别的


另外,请注意,这不是编写冒泡排序的最有效方法(例如,您不需要检查已经冒泡的元素).

在冒泡排序中,你重复直到完成。也许你可以使用循环?在冒泡排序中,你重复直到完成。也许你可以使用循环?当我执行5次时,整个数组都会被排序,任何小于5次的数组都可能无法从最低到最高正确排序,但有些输入即使经过5次迭代也无法正常工作。请尝试一个向量,即In降序。我明白了。那么什么是最佳的方法呢?只需在线搜索
气泡排序
。这方面有很多可用的资源,任何好的教科书都会有这些信息。当我做5次时,整个数组都会被排序,如果少于5,它将无法从最低到最高正确排序e、 但是有些输入即使在5次迭代中也不起作用。请尝试按降序排列的向量。我明白了。那么,最好的方法是什么呢?只需在线搜索
气泡排序
。这方面有很多可用的资源,任何好的教科书都会有这些信息。