时间效率O(N)的排序

来源:互联网 发布:视频录制软件 编辑:程序博客网 时间:2024/05/16 14:20

功能:给定一堆数,已知所有数都不是-1,用O(N)时间对它们进行排序。


int main(void){    int n = 0;    int* tempInput = (int*) malloc(sizeof(int) * MAXSIZE);    // 所有元素全部置-1    for (int i = 0; i < MAXSIZE; i++)    {        tempInput[i] = -1;    }    scanf("%d", &n);    int* nodeArray = (int*) malloc(sizeof(int) * n);    // 键值对排序    for (int i = 0; i < n; i++)    {        int temp = 0;        scanf("%d", &temp);        tempInput[temp] = 0;    }    for (int i = 0; i < MAXSIZE; i++)    {        static int j = 0;        if (tempInput[i] == 0)        {            nodeArray[j++] = i;        }    }    free(tempInput);    // 测试    for (int i = 0; i < n; i++)    {        printf("%d ", nodeArray[i]);    }
    return 0;}


0 0
原创粉丝点击