void indexsort( vector<int> & data) { int i, n = data.size(); for (i = 0; i < n; i++) { while(data[i] != i) swap(data, i, data[i]); } }
Analyze via upper bound.