当需要对二维数组排序时,通常的排序需要移动大量的数据项。

为此,可以引入一个数组作为索引,只需要对此索引进行排序,不必移动任何数据项。

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]]

 

 

You have no rights to post comments