Non ho quasi mai usato la funzione clock() ma da quel poco che ne so, e da quello che ho verificato con questo codice

codice:
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
	clock_t time_i, prev;

	prev = time_i = clock();

	for ( unsigned int i = 0; i < 1000000; i++ ) {
		if ( prev != time_i ) {
			cout << time_i << endl;
			prev = time_i;
		}
		time_i = clock();
	}

	return 0;
}
clock() restituisce il numero di cicli di clock completati in un certo intervallo di tempo, e non istante per istante... tant'è che con questo programmino ottengo incrementi di 10000 ad ogni stampa, non minori.

Evidentemente stai provando il tuo programma su un array troppo piccolo che viene ordinato in un tempo così breve da far restituire a clock() 0 sia all'inizio che alla fine della procedura. Ho provato ad eseguire il tuo codice con un array di 10000 elementi (ovviamente randomizzando la creazione dell'array perché sarebbe stato poco stimolante inserire a mano 10000 elementi... o-o") e ottengo un risultato diverso da 0.