float, doubleの場合、NaN(非数)は-∞(負の無限大)や他の数よりも小さいと扱われる点に注意が必要です。

浮動小数点型の値のソート順序
using System;

class Sample {
  static void Main()
  {
    var doubleArray = new double[] {
      0.0, 1.0, -1.0, 0.01, -0.01,
      double.MaxValue, double.MinValue,
      double.PositiveInfinity, double.NegativeInfinity, double.NaN,
    };

    Array.Sort(doubleArray);

    Console.Write("double: ");
    Console.WriteLine(string.Join(", ", doubleArray));
  }
}
実行結果
double: NaN, -Infinity, -1.79769313486232E+308, -1, -0.01, 0, 0.01, 1, 1.79769313486232E+308, Infinity