C ++排序算法

时间:2017-08-13 20:31:59

标签: algorithm sorting

在用于修订的旧试卷上出现了一个问题,询问了一种我无法找到任何地方名称的分类。希望有人在这里可以提供帮助吗?

  

湾生成一种算法,该算法将对数组进行排序以使其最大   物品在两端,最小的在中间。例如:   [2,6,5,9,12]可能会变成[12,6,2,5,9]

2 个答案:

答案 0 :(得分:2)

在序列中进行一次传递,以找到最大值,第二大值和最小值。交换最大到一端,第二大到另一端,最小到中间。 Voila:最大的物品在两端,最小的物品在中间。称之为“排序”是愚蠢的。

答案 1 :(得分:0)

我想重点是自己创造算法:

只是一个想法:

    biggest = value of first element
    smallest= value of first element

    For all elements of the array do:
          If value of current element > biggest
                    biggest = value of current element
                    Add biggest as last element of the array
          If value of current element < smallest
                    smallest =  value of current element

    End of for loop

    Move last element of the the array at first position

    #now the biggest is the first element, the second bigger number is the last one

    Put smallest at middle position of the array [idx max / 2 rounded up]
   # now the smallest is in the middle

我希望它有所帮助。 托马斯