Esempio n. 1
0
        public void Sort(int[][] source, bool inIncreasingOrder = true)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            JaggedArrayLine[] jaggedArrLines = new JaggedArrayLine[source.Length];
            for (int i = 0; i < source.Length; i++)
            {
                jaggedArrLines[i].parameter   = GetLineParameter(source[i]);
                jaggedArrLines[i].lineAddress = source[i];
            }
            bool thereWerePermutations = true;

            for (int i = 0; (i < source.Length - 1) && thereWerePermutations; i++)
            {
                thereWerePermutations = false;
                for (int j = 0; j < source.Length - i - 1; j++)
                {
                    if ((inIncreasingOrder && jaggedArrLines[j].parameter > jaggedArrLines[j + 1].parameter) || (!inIncreasingOrder && jaggedArrLines[j].parameter < jaggedArrLines[j + 1].parameter))
                    {
                        Swap(ref jaggedArrLines[j], ref jaggedArrLines[j + 1]);
                        thereWerePermutations = true;
                    }
                }
            }
            for (int i = 0; i < source.Length; i++)
            {
                source[i] = jaggedArrLines[i].lineAddress;
            }
        }
Esempio n. 2
0
        private static void Swap(ref JaggedArrayLine first, ref JaggedArrayLine second)
        {
            JaggedArrayLine temp;

            temp   = first;
            first  = second;
            second = temp;
        }