Exemplo n.º 1
0
        /// <summary>
        /// Сортировка по времени
        /// </summary>
        /// <param name="pair">Массив пар X Y</param>
        /// <returns>Сортированный массив</returns>
        Signals.CoordPair Sort(Signals.CoordPair pair)
        {
            List <double> x = new List <double>();
            List <double> y = new List <double>();

            while (pair.X.Count > 0)
            {
                double min   = double.PositiveInfinity;
                int    index = -1;
                for (int i = 0; i < pair.X.Count; i++)
                {
                    if (min > pair.X[i])
                    {
                        min   = pair.X[i];
                        index = i;
                    }
                }
                if (index != -1)
                {
                    x.Add(pair.X[index]);
                    y.Add(pair.Y[index]);
                    pair.X.RemoveAt(index);
                    pair.Y.RemoveAt(index);
                }
                else
                {
                    break;
                }
            }
            return(new Signals.CoordPair(x, y));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Удаление (или складывать?) низших кармоник, накладывающихся по времени друг на друга
        /// </summary>
        /// <param name="pair">Массив пар X Y</param>
        void DelDupli(ref Signals.CoordPair pair)
        {
            bool duplicate = false;

            do
            {
                duplicate = false;
                for (int i = 0; i < pair.X.Count - 1; i++)
                {
                    if (pair.X[i] == pair.X[i + 1])
                    {
                        int index = pair.Y[i] < pair.Y[i + 1] ? i : i + 1;
                        pair.X.RemoveAt(index);
                        pair.Y.RemoveAt(index);
                        duplicate = true;
                    }
                }
            } while (duplicate);
        }