如何将两个数组排在一起,其中第一个使用冒泡排序进行排序?

时间:2017-12-29 18:24:02

标签: c arrays sorting

我有两个阵列,一个是持有学生的身份证号码,第二个是持有等级的... 我想以排序的方式在等级的数组中插入一个等级..其中我假设之前的数组已被排序。 我的问题是我想保持学生的数组也按照等级的数组进行排序。

  

成绩数组= [100 90 80]

     

students_id array = [11 22 33]

我希望插入95级,ID为44,然后我会:

  

成绩数组= [100 95 90 80]

     

students_id array = [11 44​​ 22 33]

// 我怎么能这样做?我认为我可能会将等级插入数组,然后对第一个数组使用冒泡排序,但我也不知道如何保持另一个排序:\

void insertGrade(int* grades, int* students_id, int id , int grade){


}


void bubble_sort(int* array, int n)
{
  int c, d, t;

  for (c = 0 ; c < ( n - 1 ); c++)
  {
    for (d = 0 ; d < n - c - 1; d++)
    {
      if (array[d] > array[d+1])
      {
        /* Swapping */

        t = array[d];
        array[d]   = array[d+1];
        array[d+1] = t;
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

将第二个数组传递给函数。在交换array1中的项目的同时交换array2中的项目。

void bubble_sort(int* array, int* array2, int n)
{
  int c, d, t;

  for (c = 0 ; c < ( n - 1 ); c++)
  {
    for (d = 0 ; d < n - c - 1; d++)
    {
      if (array[d] > array[d+1])
      {
        /* Swapping */

        t = array[d];
        array[d]   = array[d+1];
        array[d+1] = t;


        t = array2[d];
        array2[d]   = array2[d+1];
        array2[d+1] = t;      
      }
    }
  }
}