试图对结构中的数据进行排序,但排序正确,但最后一行是错误的

黄亨才
 void sort(loc_sos_t a[], int array_size)
{
int i, j;
double index;
loc_sos_t index_block;
for (i = 1; i < array_size; i++){

    index = a[i].sos;
    index_block= a[i];
    for (j = i; j > 0 && a[j-1].sos > index; j--){
        a[j].sos = a[j-1].sos;
    }

    a[j].sos = index;
    a[j]= index_block;
}
}

因此,该代码段应该以struct和integer作为其参数。该结构是一个数组。在每个索引处,该结构均包含x,y坐标和一个瓦特值。该代码段按升序对瓦特值进行排序,并将其相应的x,y坐标移至新位置。

input
30.0 meters east, 70.0 meters north, power 0.0045 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
36.5 meters east, 27.0 meters north, power 0.0005 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts

output
36.5 meters east, 27.0 meters north, power 0.0005 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
30.0 meters east, 70.0 meters north, power 0.0045 watts

wrong output generated by wrong code
36.5 meters east, 27.0 meters north, power 0.0005 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
20.0 meters east, 50.0 meters north, power 0.0045 watts

我输出的最后一行是错误的。请帮忙。我不知道为什么只有一行是错误的。

克里斯蒂安·格列柯(Cristian Greco)

这是用于插入排序的代码,对数组值的副本的修复不多(逻辑是正确的,您只是弄乱了数组元素的副本):

void sort(loc_sos_t a[], int array_size) {
    int i, j;
    double index;
    loc_sos_t index_block;
    for (i = 1; i < array_size; i++) {
        index = a[i].sos;
        index_block = a[i];
        for (j = i; j > 0 && a[j - 1].sos > index; j--) {
            a[j] = a[j - 1];
        }
        a[j] = index_block;
    }
}

无论如何,您可能想使用qsort标准库中更有效的方法

int cmplocsos(const void *p1, const void *p2) {
    double s1 = ((loc_sos_t*)p1)->sos;
    double s2 = ((loc_sos_t*)p2)->sos;
    return (s1 > s2) - (s1 < s2);
}

qsort(&arr[0], array_size, sizeof(loc_sos_t), cmplocsos);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按列值对数据框中的每一行进行排序

来自分类Dev

在R中,对两个匹配数据帧的每一行进行排序

来自分类Dev

如何对熊猫数据框中的每一行进行排序并获取索引?

来自分类Dev

根据Mathematica中的一行对矩阵进行排序

来自分类Dev

对每一行中的单词进行排序

来自分类Dev

如何对数据框每一行的值进行排序并返回排序后的列名

来自分类Dev

根据最后一行的值按列对Deedle Frame进行排序

来自分类Dev

对当前登录用户的列表进行排序,并显示包含最后排序的用户ID的一行。

来自分类Dev

针对Spark数据框中的每一行,按地图类型列中的键进行排序

来自分类Dev

如何按升序对第一行然后在第二行和最后在第三行中的数字进行排序但保存列顺序?

来自分类Dev

使最后一行成为非可排序的

来自分类Dev

使最后一行成为非可排序的

来自分类Dev

按 SELECT 子查询的最后一行排序

来自分类Dev

如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

来自分类Dev

使用VBA宏在Excel中对行进行排序。它起作用了,除了每一行的最后一个单元格

来自分类Dev

获取每个组中的最后一行,并通过ID(pk)DESC对整个数组进行排序,并与其他表连接

来自分类Dev

弹簧数据:按条件对每一行进行排序

来自分类Dev

如何按一行的内容对整个数据框进行排序

来自分类Dev

在R中按降序对一列进行排序(第一行除外)

来自分类Dev

根据最后一列对数据进行排序

来自分类Dev

使用指针对二维数组中的一行中的元素进行排序

来自分类Dev

如何在 BASH 中对一行中的 ROW 进行排序

来自分类Dev

试图了解代码的最后一行

来自分类Dev

删除一行中的一行重新排序表重置重新排序

来自分类Dev

根据一行的内容对所有行进行排序

来自分类Dev

根据一行的内容对所有行进行排序

来自分类Dev

根据前一行的值对 SQL 查询进行排序

来自分类Dev

如何根据上一行中的值对sql结果进行排序?

来自分类Dev

根据另一行中的值对Excel行进行排序

Related 相关文章

  1. 1

    按列值对数据框中的每一行进行排序

  2. 2

    在R中,对两个匹配数据帧的每一行进行排序

  3. 3

    如何对熊猫数据框中的每一行进行排序并获取索引?

  4. 4

    根据Mathematica中的一行对矩阵进行排序

  5. 5

    对每一行中的单词进行排序

  6. 6

    如何对数据框每一行的值进行排序并返回排序后的列名

  7. 7

    根据最后一行的值按列对Deedle Frame进行排序

  8. 8

    对当前登录用户的列表进行排序,并显示包含最后排序的用户ID的一行。

  9. 9

    针对Spark数据框中的每一行,按地图类型列中的键进行排序

  10. 10

    如何按升序对第一行然后在第二行和最后在第三行中的数字进行排序但保存列顺序?

  11. 11

    使最后一行成为非可排序的

  12. 12

    使最后一行成为非可排序的

  13. 13

    按 SELECT 子查询的最后一行排序

  14. 14

    如何根据行的排序值对pandas数据帧的每一行进行排序并返回列索引

  15. 15

    使用VBA宏在Excel中对行进行排序。它起作用了,除了每一行的最后一个单元格

  16. 16

    获取每个组中的最后一行,并通过ID(pk)DESC对整个数组进行排序,并与其他表连接

  17. 17

    弹簧数据:按条件对每一行进行排序

  18. 18

    如何按一行的内容对整个数据框进行排序

  19. 19

    在R中按降序对一列进行排序(第一行除外)

  20. 20

    根据最后一列对数据进行排序

  21. 21

    使用指针对二维数组中的一行中的元素进行排序

  22. 22

    如何在 BASH 中对一行中的 ROW 进行排序

  23. 23

    试图了解代码的最后一行

  24. 24

    删除一行中的一行重新排序表重置重新排序

  25. 25

    根据一行的内容对所有行进行排序

  26. 26

    根据一行的内容对所有行进行排序

  27. 27

    根据前一行的值对 SQL 查询进行排序

  28. 28

    如何根据上一行中的值对sql结果进行排序?

  29. 29

    根据另一行中的值对Excel行进行排序

热门标签

归档