我有一个有趣的问题,过去 2 天我一直在努力解决这个问题,但没有具体的解决方案。我正在尝试用 C 编写一个程序,该程序采用以下输入数组:
1,1,5,5,
1,1,5,9,
2,2,6,2,
1,2,5,5,
1,3,6,6,
1,4,5,1,
4,1,5,6,
5,2,7,1,
1,1,6,0,
2,2,5,0,
step1:根据第 3 列对上述数组进行分组(对 4 个元素的元组(即每一行)进行桶排序,基于第 3 列的值:
2,2,5,5
1,1,5,9,
1,2,5,5,
1,4,5,1,
4,1,5,6,
2,2,5,0,
2,2,6,2,
1,3,6,6,
1,1,6,0,
5,2,7,1
第 2 步:最后根据每个桶中的第 4 列对元素进行排序,如下所示:
最终输出数组:
2,2,5,0,
1,4,5,1,
2,2,5,5,
1,2,5,5,
4,1,5,6,
1,1,5,9,
1,1,6,0,
2,2,6,2,
1,3,6,6,
5,2,7,1
第 1 列和第 2 列的元素在上述排序过程中不起任何作用。
我尝试了各种技术,使用快速排序或桶排序,然后是随后的快速排序。没有什么是完全正确的。任何人都可以建议使用适当的数据结构在 C 中执行此操作的方法。