簡體   English   中英

在C ++中對二維數組使用插入排序功能?

[英]Using a insertion sort function for two dimensional array in C++?

我正在執行的功能之一是對具有2行12列的二維數組使用插入排序。 第一行用於學生ID,因此共有12名學生。 第二行為每個學生提供相應的GPA。 我不確定如何提出插入排序來對GPA編號進行升序排序。 任何幫助都是極好的!

到目前為止,我已經知道了。

void insertionSort(double avg[][COLS])
{
int current = 1;
int last = COLS - 1;
int temp;
int walker;
int row = 1;

while (current <= last)
{
    temp = avg[row][current];
    walker = current - 1;
    while (walker >= 0
        && temp < avg[row][walker])
    {
        avg[row][walker+1] = avg[row][walker];
        walker = walker - 1;
    }

    avg[row][walker+1] = temp;
    current = current + 1;
}

您的問題是temp變量被聲明為int,它應該為double,也應該交換id

void insertionSort(double avg[][COLS])
{
    int current = 1;
    int last = COLS - 1;
    double temp;//this was an int
    int walker;
    int row = 1;

    while (current <= last)
    {
        temp = avg[row][current];
        walker = current - 1;
        while (walker >= 0
                && temp < avg[row][walker])
        {
            avg[row][walker+1] = avg[row][walker];
            avg[row-1][walker+1] = avg[row-1][walker];//swap the id of two students
            walker = walker - 1;
        }

        avg[row][walker+1] = temp;
        avg[row-1][walker+1] = temp;
        current = current + 1;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM