二维数组的冒泡/选择排序(两种实现方法)

您所在的位置:网站首页 二维数组中元素排列的顺序为 二维数组的冒泡/选择排序(两种实现方法)

二维数组的冒泡/选择排序(两种实现方法)

2024-07-05 14:29| 来源: 网络整理| 查看: 265

一、思路 1.降维排序

一种思路是先将二维数组转化为一维数组,再利用一维数组的排序算法进行排序,最后转换回二维数组。

2.指针运算

另一种思路是直接对二维数组进行排序,利用二维数组在内存中是顺序排放的性质,通过递增指针遍历每个数组元素,进而进行比较移位,完成排序。

二、Show me the code.

实验不是很难,所以直接上冒泡排序和选择排序的代码。所有代码已经用DEV-C++跑过,保证代码的正确性。

1.冒泡排序 (1)降维排序

使用四个简单的函数实现排序。

#include #define ROW 3 #define COL 4 void bubble(int a[], int size); //冒泡排序一维 void convert_2D_1D(int arr1[], int arr2[][COL]); //二维转化为一维 void convert_1D_2D(int arr1[], int arr2[][COL]); //一维转化为二维 void ouput_array2(int arr2[][COL]); //输出二维数组 int main(void) { int arr[ROW][COL] = { {10,5,8,1}, {9,2,6,4}, {3,12,11,7}, }; int size = ROW*COL; int arr1[size]; convert_2D_1D(arr1, arr); //二维转化为一维 bubble(arr1, size); //一维冒泡排序 convert_1D_2D(arr1,arr); //一维转化为二维 ouput_array2(arr); //输出二维数组 return 0; } void convert_2D_1D(int arr1[], int arr2[][COL]) { int i,j,k=0; for (i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3