I have a piece of code that works well to fill an array with a unique random numbers. My problem now is, that I want to sort these numbers, but not after the array is full but as new numbers are being inserted. So as each new number is inserted into the array, if finds the position it is meant to be in. The code I have for creating unique random numbers is below, thank you in advance:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;

#define MAX 2000 // Values will be in the range (1 .. MAX)
static int seen[MAX]; // These are automatically initialised to zero
// by the compiler because they are static.
static int randomNum[1000];

int main (void) {
int i;

srand(time(NULL)); // Seed the random number generator.

for (i=0; i<1000; i++)
int r;
r = rand() / (RAND_MAX / MAX + 1);
while (seen[r]);
seen[r] = 1;
randomNum[i] = r + 1;

for (i=0; i<1000; i++)
cout << randomNum[i] << endl;

return 0;