例如,对已经初始化的三维数组,要求按从小到大的顺序排列并输出结果,注意:不能在初始化时特意给它输入已经排好了数(即从小到大的一些数).
首先,排序实质上都是一维的,真正的多维排序那是另外一个概念。
那么,你只要把多维数组强制转换成一维数组,等你排出来,就等于多维排序了。
比如:
#include <stdio.h>
void BubbleSort(int *array, int m)
{
bool change;
int i, j ,tmp;
for(i = m - 1; i > 0; i--)
{
change = false;
for(j = 0; j < i; j++)
{
if(array[j] > array[j + 1])
{
tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
change = true;
}
}
if(false == change)
break;
}
}
int main()
{
int a[3][3] = { 9, 5, 3, 6, 8, 1, 2, 7, 4 };
int i, j;
BubbleSort((int *)a, sizeof(a) / sizeof(int));
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}
这里所使用的就是一般的一维数组的冒泡排序啊。
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=993998