ITKeyword - 技术文章推荐分享

首页 > 阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出 - - 博客频道 - CSDN.NET

阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出 - - 博客频道 - CSDN.NET

相关推荐:阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况

基本思想:假设输入就是1到10的数字,那么可以申请一个簿记数组book[11],用来记录已经到到的数字,但是我们输出还是按照从1开始到10进行输出,假设欲输出的数字为j,我们要观察簿记数组b[j]是否有记录,若有记录,则进行输出,若没有记录,则等待下一次观

转载请注明出处:http://blog.csdn.net/tsx86/article/details/44883601分布式系统中的RPC请求经常出现乱序的情况。写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是:123, 4, 567, 8, 9, 10 上述例子中,3到来的时候会发现4,5已经在了。因此将已经满足顺序的整个序列(3, 4, 5)输出为一行。 要求:1. 写一个高效的算法完成上述功能,实现要尽可能的健壮、易于维护2. 为该算法设计并实现单元测试基本思想是将每一行存入一个链表结点,data表示起始数据,len表示每行元素个数。貌似效率不是很高,有时间的时候改进下。struct ListNode

{ int data; int len; ListNode* next;

}; void InsertNode(ListNode *&pHead, ListNode *pNode){ ListNode * pTmp = NULL; if(pNode == NULL) {

cout << "pNode is NULL!" << endl;

return; } if(pHead == NULL) {

pHead = pNode; } else {

for(pTmp = pHead;pTmp->next != NULL; pTmp = pTmp->next)

;

pTmp->next = pNode;

}} void SortAndPrint(int a[], int n){ ListNode *pHead = NULL; ListNode *temp = NULL;

int i = 0; int data = 0; int dataLen = 0; while(i < n) {

int j = 0;

int len = 0;

int moreNum

相关推荐:分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出

分布式系统中的RPC请求经常出现乱序的情况。写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是:123, 4, 567, 8, 9, 10上述例子中,3到来的时候会发现4,5已经在了。因

= a[i];

int lessNum = a[i];

//查找小于一个数的连续数出现次数

while(j < i)

{

if(a[j] == lessNum-1)

{

j = 0;

lessNum--;

continue;

}

j++;

}

//只有小于一个数的所有数均出现时才存数据

if(lessNum == 1)

{

j = 0;

while(j < i)

{

if(a[j] == moreNum+1)

{

len++;

moreNum++;

j = 0;

continue;

}

j++;

}

ListNode *p = (ListNode*)malloc(sizeof(ListNode));

memset(p, 0, sizeof(ListNode));

p->data = a[i];

p->len = len;

p->next = NULL;

InsertNode(pHead, p);

}

i++; }

//按顺序打印序列

for(temp=pHead; temp!=NULL; temp=temp->next) {

dataLen = temp->len;

data = temp->data;

while(dataLen)

{

printf("%d,",data++);

dataLen--;

}

printf("%d\n",data); }

//释放资源

ListNode *prev = NULL; ListNode *curr = pHead; while(curr!=NULL) {

prev=curr;

curr=curr->next;

if(prev != NULL)

{

free(prev);

prev = NULL;

} }}

相关推荐:阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出

分布式系统中的RPC请求经常出现乱序的情况。 写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1,对于(1, 2, 5, 8, 10, 4, 3, 6, 9, 7)这个序列,输出是: 1 2 3, 4, 5 6 7, 8, 9, 10上述例子中,3到来的时候会发现4,5已经在了。因此将已经

转载请注明出处:http://blog.csdn.net/tsx86/article/details/44883601分布式系统中的RPC请求经常出现乱序的情况。写一个算法来将一个乱序的序列保序输出。例如,假设起始序号是1...

------分隔线----------------------------