当需要对二维数组排序时,通常的排序需要移动大量的数据项。
为此,可以引入一个数组作为索引,只需要对此索引进行排序,不必移动任何数据项。
int a[5][3];
int b[5];
针对一维数组,原先需要交换数组a的元素,
int temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
如果是二维数组,则需要交换两行。
采用索引数组int b[5];
只需要调整索引数组元素即可。
int temp = b[i];
b[i] = b[i + 1];
b[i + 1] = temp;
排序后,需要用b[i]
代替a[i]
中的i
,即a[b[i]]
。