Pagini recente » Cod sursa (job #3032181) | Cod sursa (job #758330) | Cod sursa (job #1233760)
#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
#define INF 0x3f3f3f3f
#define MAXN 5000005
struct Node {
int info;
struct Node *next;
};
int i,
N,
v[ MAXN ];
struct Node *head,
*newnode,
*c, *c1;
void readAndSort() {
freopen(FIN, "r", stdin);
head = (struct Node*)malloc(sizeof(struct Node));
head->info = INF;
head->next = NULL;
scanf("%d", &N);
for(i = 0; i < N; i++) {
scanf("%d", &v[i]);
if(v[i] < head->info) {
newnode = (struct Node*)malloc(sizeof(struct Node));
newnode->info = v[i];
newnode->next = head;
head = newnode;
} else {
c = head;
c1 = head->next;
while(v[i] > c1->info) {
c = c->next;
c1 = c1->next;
}
newnode = (struct Node*)malloc(sizeof(struct Node));
newnode->info = v[i];
newnode->next = c1;
c->next = newnode;
}
}
freopen(FOUT, "w", stdout);
c = head;
while(c && c->info != INF) {
printf("%d ", c->info);
c = c->next;
}
fclose( stdout );
fclose( stdin );
}
int main() {
readAndSort();
return(0);
}