阿里在线笔试题---乱序到来顺序输出

来源:互联网 发布:c语言输出乘法口诀表 编辑:程序博客网 时间:2024/06/03 01:42


#include <bits/stdc++.h>using namespace std;const int maxLength = 1000;int arrayLength;int unsortedList[maxLength], sortedList[maxLength];void test() {srand((unsigned) time(NULL));arrayLength = rand() % maxLength + 1;for (int i = 0; i < arrayLength; i++)unsortedList[i] = sortedList[i] = rand() % 0x7fffffff + 1;}int main(void) {test();cout << "The length is : " << arrayLength << endl;cout << "The coming list is : " << endl;for (int i = 0; i < arrayLength; i++)cout << unsortedList[i] << " ";cout << endl << endl;map<int, bool> vstd;int counter = 1;int expectedIndex = 0, latestIndex = 0;sort(sortedList, sortedList + arrayLength);cout << "The Output is : " << endl;for (int i = 0; i < arrayLength; i++) {if (unsortedList[i] == sortedList[expectedIndex]) {int tempIndex = expectedIndex + 1;while (tempIndex < arrayLength && vstd[sortedList[tempIndex]])tempIndex++;latestIndex = tempIndex - 1;cout << counter << ":";counter++;for (int j = expectedIndex; j <= latestIndex; j++)cout << sortedList[j] << " ";cout << endl;expectedIndex = ++latestIndex;}vstd[unsortedList[i]] = true;}}


0 0
原创粉丝点击