快速排序算法中的循环中断

时间:2017-01-06 06:04:00

标签: c# sorting for-loop nested-loops break

实施具有错误结果的快速排序算法。我可以在视频中找到我想要做的详细信息:https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/courseware/cdf0594e6a80402bbe902bb107fd2976/22251a2b00ac42788c70ca6f6ccbe7fd/ break命令是否将我从内循环或两个循环中取出?您将在下面找到代码,欢迎任何帮助。

int main (void)
{

// Array of integers to be sorted
int list[] = { 3, 9, 8, 5, 7, 6, 4, 2, 1};
int arrayIndexLimit = (sizeof (list) / sizeof (int)) - 1;
int temp = 0;

// "J" separates sorted part of array from unsorted one 
for (int j = 0; j < arrayIndexLimit; j++)
{

    // Find smallest value in unsorted part of array
    for (int i = j; i <= arrayIndexLimit; i++)
    {

        // Put smallest value in jth position 
        if (list[i] < list[arrayIndexLimit])
        {
            temp = list[j];
            list[j] = list[i];
            list[i] = temp;
            break;
        }  

        // Pivot (last item of array) is the smallest
        if (i == arrayIndexLimit)
        {
            temp = list[i];
            list[i] = list[j];
            list[j] = temp;
            break;
        }
    }

// Print sorted list
}

1 个答案:

答案 0 :(得分:1)

break只会让你脱离当前循环并将控制权返回到外循环

Source