排序算法有10个元素

时间:2015-05-15 04:22:57

标签: c arrays sorting

我必须制作一个程序,要求用户输入一个10元素数组,其数字从09

然后将数组发送到该函数。此函数将按如下方式对数组中的每个数字进行排序:

sort

我不知道如何重新定位数字。

1 个答案:

答案 0 :(得分:0)

这是我的实施 Joel Gregory的评论:

此函数创建一个未编辑的数组,将原始内容复制到该数组,然后从第一个索引循环到最后一个。它将用作检查索引的任何匹配的基础。

在每次迭代中,如果未编辑的元素中的任何元素与索引号匹配,则该函数将搜索未编辑的数组。如果是,则将初始值替换为索引值。否则,分配零。依此类推,直到最后一个索引。

 void swap(int *original, int max_elements) {

      int index = 0, matcher = 0, unedited[max_elements];

      // copies original to unedited
      memcpy(unedited, original, max_elements * sizeof(int));

      for (--index; ++index < max_elements; ) {

           // searches the original array for matches with the current index
           // loops until it finds a match or it reaches the maximum number of elements
           for (matcher = 0; unedited[matcher] != index && ++matcher < max_elements;);

           // if there is match, the initial value is changed with it's index value, else zero is the new value.
           original[index] = (matcher != max_elements) ? index : 0;
      }
 }

<强>输出:

Original: 1 1 7 8 2 8 1 6 3 2 
Sorted:   0 1 2 3 0 0 6 7 8 0