微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法理解这种选择排序算法,是什么导致循环停止和交换? C++

如何解决无法理解这种选择排序算法,是什么导致循环停止和交换? C++

我不明白内部 for 循环是如何在找到通过 if 语句中的测试表达式的值后才停止的。我期待内部 for 循环继续迭代,不管当前迭代的值是否满足 if 语句中的测试表达式。

我预计会发生这种情况,因为在内循环标头中,在我看来,只要索引小于数组的大小,它就应该继续迭代,但是它不会继续并跳回外循环执行交换...

我不明白是什么阻止了内部 for 循环对每个元素中的每个值进行迭代,无论它是否通过 if 语句中的测试表达式。任何人都可以澄清吗?

谢谢

void selectionSor(int array[],int size)
{
     int minIndex,minValue;
     for (int start = 0; start < (size - 1); start++)
     {
          minIndex = start;
          minValue = array[start];
          for (int index = start + 1; index < size; index++)
          {
               if (array[index] < minValue)
               {
               minValue = array[index];
               minIndex = index;
               }
          }
     
        swap(array[minIndex],array[start]);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。