编辑代码

#include <iostream>

using namespace std;

void linesort(int arr[], int len, int orderArr[]) {
    int max = 0;
    int min = 0;
    max = arr[0];
    min = arr[0];
    for (int i = 0; i < len; ++i) {
        if (arr[i] < min) {
            min = arr[i];
        }
        else if (arr[i] > max) {
            max = arr[i];
        }
    }

    int count[1000] = {};
    for (int i = 0; i < 1000; i++)
    {
        count[i] = 0;
    }
    int countlen = max - min + 1;
    for (int i = 0; i < countlen; ++i) {
        count[i] = 0;
    }
    for (int i = 0; i < len; ++i) {
        ++count[arr[i] - min];
    }
    for (int i = 1; i < countlen; ++i) {
        count[i] = count[i] + count[i - 1];
    }

    for (int i = len - 1; i >= 0; --i) {
        int valueIndex = arr[i] - min;
        --count[valueIndex];
        orderArr[count[valueIndex]] = arr[i];

    }
}
void PrintfArray(int array[], int len)
{
    for (int i = 0; i < len; ++i) {
        cout << array[i] << " ";

    }
    cout << endl;
}
int main() {
    int arr1[] = { 2,5,3,0,2,3,0,3 };
    int newarray1[1000] = {};
    int len1 = sizeof(arr1) / sizeof(int);
    linesort(arr1, len1, newarray1);
    PrintfArray(newarray1, len1);
    int arr2[] = { 4,5,4,2,4, 1,5 };
    int newarray2[1000] = {};
    int len2 = sizeof(arr2) / sizeof(int);
    linesort(arr2, len2, newarray2);
    PrintfArray(newarray2, len2);
    

    return 0;
}