예제 #1
0
        static void Main()
        {
            Console.Write("Generating array to sort: ");
            int[] arrayToSort = new int[MAX_ARRAY_SIZE];
            var   rGen        = new Random();

            for (int i = 0; i < MAX_ARRAY_SIZE; i++)
            {
                var progressString = $"{i + 1}/{MAX_ARRAY_SIZE}";
                Console.Write(progressString);
                Console.SetCursorPosition(Console.CursorLeft - progressString.Length, Console.CursorTop);
                arrayToSort[i] = rGen.Next(0, MAX_ARRAY_SIZE);
            }

            var        _bubbleSorter    = new BubbleSorter <int>();
            var        _mergeSorter     = new MergeSorter <int>();
            var        _insertionSorter = new InsertionSorter <int>();
            BigInteger totalMs          = 0;

            Console.SetCursorPosition(0, Console.CursorTop + 2);

            totalMs += TestIntegersArraySortingMethod("Bubble sorting", _bubbleSorter, arrayToSort);
            totalMs += TestIntegersArraySortingMethod("Insertion sorting", _insertionSorter, arrayToSort);
            totalMs += TestIntegersArraySortingMethod("Merge sorting", _mergeSorter, arrayToSort);

            Console.WriteLine($"Test completed in {totalMs} ms");
            Console.SetCursorPosition(0, Console.CursorTop + 1);

            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
예제 #2
0
파일: TestSort.cs 프로젝트: krs43/ngenerics
		public void ExceptionNullComparison2()
        {
            var sorter = new BubbleSorter<int>();

            var list = GetReverseSequentialTestList();
            sorter.Sort(list, (Comparison<int>)null);
        }
        public IActionResult Get()
        {
            var  list = new List <AlgStat>();
            long insertTime, selectTime, bubbleTIme = 1;
            var  gen    = new ListGenerator();
            var  insert = new InsertionSorter();
            var  select = new SelectionSorter();
            var  bubble = new BubbleSorter();

            int[] arr = gen.ListOfIntegers(1000);

            insertTime = insert.Iterative(arr);
            selectTime = select.Iterative(arr);
            bubbleTIme = bubble.Iterative(arr);

            list.Add(new AlgStat()
            {
                ExecTime = insertTime, Name = "Insert"
            });
            list.Add(new AlgStat()
            {
                ExecTime = selectTime, Name = "select"
            });
            list.Add(new AlgStat()
            {
                ExecTime = bubbleTIme, Name = "bubble"
            });


            return(Ok(list));
        }
예제 #4
0
파일: StartUp.cs 프로젝트: morskibg/OopADV
    static void Main()
    {
        var arr = new int[] { 34, 3, -2, 341, 123, 49 };

        BubbleSorter.Sort(arr);
        Console.WriteLine(string.Join(" ", arr));
    }
예제 #5
0
        static void Main(string[] args)
        {
            Person p0 = new Person("Максим", "Орлов", new DateTime(1989, 5, 12));
            Person p1 = new Person("Иван", "Иванов", new DateTime(1985, 7, 21));
            Person p2 = new Person("Петр", "Петров", new DateTime(1991, 3, 1));
            Person p3 = new Person("Федор", "Федоров", new DateTime(1971, 11, 25));
            Person p4 = new Person("Павел", "Козлов", new DateTime(1966, 8, 6));

            Object[] persons = { p0, p1, p2, p3, p4 };

            Console.WriteLine("\nНесортированный список:");
            foreach (Object person in persons)
            {
                Console.WriteLine(person);
            }

            Console.WriteLine("\nСортированный список:");
            BubbleSorter.Sort(persons, new Comparer(PersonBirthdayComparer));
            foreach (Object person in persons)
            {
                Console.WriteLine(person);
            }

            Console.WriteLine("\n");
        }
예제 #6
0
    static void Main(string[] args)
    {
        Object[] persons =
        {
            new Person("Даниэль",   "Барсегян",   new DateTime(1995, 10,  8)),
            new Person("Виталий",   "Здерка",     new DateTime(1984,  6, 14)),
            new Person("Дмитрий",   "Каминский",  new DateTime(1988,  7,  1)),
            new Person("Ренат",     "Каримов",    new DateTime(1994,  1,  1)),
            new Person("Александр", "Копытченко", new DateTime(1984, 11,  6)),
            new Person("Игорь",     "Попов",      new DateTime(1993,  5, 11))
        };


        Console.WriteLine("Несортированный список:\n");
        foreach (Object person in persons)
        {
            Console.WriteLine(person);
        }

        Console.WriteLine("\nСортированный список:\n");
        BubbleSorter.Sort(persons, new Comparer(PersonBirthdayComparer));
        foreach (Object person in persons)
        {
            Console.WriteLine(person);
        }

        Console.WriteLine("\n");
    }
예제 #7
0
        public void SorterTest()
        {
            int[] testInts = new int[] { 1, 4, 5, -10, 20, 0 };
            testInts = BubbleSorter <int> .BubbleSort(testInts).ToArray();

            Assert.That(testInts.SequenceEqual(new int[] { -10, 0, 1, 4, 5, 20 }));
        }
        public void Input321NumbersArray_Gives3SwapsAnd123NumbersArray()
        {
            BubbleSorter bubbleSorter = new BubbleSorter(new int[] { 3, 2, 1 });

            CollectionAssert.AreEqual(new int[] { 1, 2, 3 }, bubbleSorter.SortNumbers());
            Assert.AreEqual(3, bubbleSorter.NumberOfSwaps);
        }
예제 #9
0
        public static void Show()
        {
            int[] arr = new int[]
            {
                100, 500,
                1000, 2000, 5000
            };

            foreach (int i in arr)
            {
                Console.WriteLine("Длина массива - " + i);

                string[] array = TextGenerator.GenerateText(i).Split();
                Console.WriteLine("сортировка пузырьком O(n^2) " + ", время выполнения - " +
                                  ActionTimeMeasurer.Measure(new Action(() =>
                                                                        BubbleSorter.Sort(array))));

                array = TextGenerator.GenerateText(i).Split();
                Console.WriteLine("сортировка вставками O(log(n)) " + ", время выполнения - " +
                                  ActionTimeMeasurer.Measure(new Action(() =>
                                                                        MergeSorter.Sort(array))));

                GC.Collect();
                Console.WriteLine();
            }

            Console.ReadKey();
        }
예제 #10
0
        public async void Sort()
        {
            string[] arr = await Task.Run(() =>
            {
                InputText      = InputText.Trim();
                string[] array = Split(InputText);
                if (array.Length > 0)
                {
                    GC.Collect();
                    BubbleSortingTime = (int)ActionTimeMeasurer.Measure(new Action(() =>
                                                                                   BubbleSorter.Sort(array)));
                    array = Split(InputText);
                    if (array.Length > 0)
                    {
                        GC.Collect();
                        MergeSortingTime = (int)ActionTimeMeasurer.Measure(new Action(() =>
                                                                                      MergeSorter.Sort(array)));
                    }
                    WordsInText = array.Length;
                }
                return(array);
            });

            ArrToObsColl(arr);
            CalcWords(arr);
            SortTextLabel     = "Sort Text";
            UniqueWordsInText = SortedTextWords.Count();
            RaisePropertyChanged("SortTextLabel");
            UpdateInfo();
        }
예제 #11
0
        public void BubbleSortTest(int[] unsorted, int[] expected, int[] sorted, BubbleSorter bubbleSorter)
        {
            "Given an unsorted array"
            .x(() =>
            {
            });

            "And a BubbleSorter"
            .x(() =>
            {
                bubbleSorter = new BubbleSorter();
            });

            "When I BubbleSort it"
            .x(() =>
            {
                sorted = bubbleSorter.Sort(unsorted);
            });

            "Then it is sorted as I expect"
            .x(() =>
            {
                Xunit.Assert.Equal(expected, sorted);
            });
        }
예제 #12
0
        static void Main(string[] args)
        {
            insertionsorter sorter1 = new insertionsorter();
            BubbleSorter    sorter2 = new BubbleSorter();
            SelectionSorter sorter3 = new SelectionSorter();
            int             icount  = 1000;
            Random          random  = new Random();

            sorter1.list = new int[icount];
            sorter2.list = new int[icount];
            sorter3.list = new int[icount];
            for (int i = 0; i < icount; ++i)
            {
                sorter1.list[i] = sorter2.list[i] = sorter3.list[i] = random.Next(); //随机数组
            }
            Stopwatch stwatch = new Stopwatch();                                     //计时器设置

            stwatch.Start();                                                         //计时器开始
            sorter1.Sort();                                                          //插入排序开始
            sorter2.Sort();                                                          ////冒泡排序开始
            sorter3.Sort();                                                          //选择排序开始
            stwatch.Stop();                                                          //计时器停止
            Console.WriteLine(stwatch.Elapsed.TotalMilliseconds);                    //输出时间
            Console.ReadKey();                                                       //按任意键继续
        }
예제 #13
0
파일: TestSort.cs 프로젝트: krs43/ngenerics
		public void ExceptionNullComparison1()
        {
            var sorter = new BubbleSorter<int>();

            var list = GetReverseSequentialTestList();
            sorter.Sort(list, new Comparison<int>(IntComparison));
            AssertGeneralTestListSorted(list);
        }
예제 #14
0
        public void Can_Bubble_Sort()
        {
            var bubbleSorter = new BubbleSorter <int>();
            var result       = bubbleSorter.Sort(new[] { 9, 5, 1, 4, 2, 8, 2 });

            result.Should().BeOfType <int[]>();
            result.Should().BeInAscendingOrder();
        }
예제 #15
0
        public void BubbleSorter_SortStringsDescending_SortsCorrectly(IList <string> actual)
        {
            var sorter = new BubbleSorter <string>();

            sorter.Sort(actual, SortOrder.Descending);

            SortAssert.IsSortedDescending(actual, Comparer <string> .Default);
        }
예제 #16
0
        public void BubbleSortingTest(int[] heap, int[] expectedArray)
        {
            ISortingService sorter = new BubbleSorter();

            sorter.Sort(heap);

            Assert.Equal(heap, expectedArray);
        }
예제 #17
0
        public void TestBubbleSortComparisonNullComparison2()
        {
            BubbleSorter <int> sorter = new BubbleSorter <int>();

            List <int> list = GetReverseSequentialTestList();

            sorter.Sort(list, (Comparison <int>)null);
        }
예제 #18
0
        private static void RunIComparable()
        {
            var employeeList = GenerateEmployees();

            ShowEmployees(employeeList); // before sort

            BubbleSorter.BubbleSort(employeeList);
            ShowEmployees(employeeList); // after sort
        }
예제 #19
0
        public void Sort_EmptyArray_Success()
        {
            var sorter = new BubbleSorter <int>();
            var array  = new int[0];

            sorter.Sort(array);

            Assert.IsTrue(sorter.Ensure(array));
        }
예제 #20
0
        public void TestBubbleSortComparisonNullComparison1()
        {
            BubbleSorter <int> sorter = new BubbleSorter <int>();

            List <int> list = GetReverseSequentialTestList();

            sorter.Sort(list, new Comparison <int>(IntComparison));
            AssertGeneralTestListSorted(list);
        }
예제 #21
0
        private static void RunComparison()
        {
            var employeeList = GenerateEmployees();

            ShowEmployees(employeeList); // before sort

            BubbleSorter.BubbleSort(employeeList, EmployeeComparison.AgeAscendComparison);
            ShowEmployees(employeeList); // after sort
        }
예제 #22
0
        public void ShouldSortMultipleItems()
        {
            var sorter = new BubbleSorter <int>();

            int[] items = { 8, 3, 4, 12, 73, 1, 3, 4, 5 };
            sorter.BubbleSort(items);

            Assert.AreEqual(new int[] { 1, 3, 3, 4, 4, 5, 8, 12, 73 }, items);
        }
예제 #23
0
        public void should_sort_list()
        {
            const int number_of_numbers = 100;
            ISorter sut = new BubbleSorter();

            var list_of_numbers = sut.Sort(objectMother.CreateRandomArray(number_of_numbers));

            Assert.True(list_of_numbers.IsSorted());
        }
예제 #24
0
        public void ShouldSortEmptyArray()
        {
            var sorter = new BubbleSorter <int>();

            int[] items = { };
            sorter.BubbleSort(items);

            Assert.IsEmpty(items);
        }
예제 #25
0
        public void ShouldSortTwoItems()
        {
            var sorter = new BubbleSorter <int>();

            int[] items = { 8, 3 };
            sorter.BubbleSort(items);

            Assert.AreEqual(new int[] { 3, 8 }, items);
        }
예제 #26
0
        public void EmptyParameter_bubbleSort()
        {
            ISortingService sorter = new BubbleSorter();

            sorter = new BubbleSorter();
            int[] param = null;

            Assert.Throws <ArgumentException>("data", () => sorter.Sort(param));
        }
예제 #27
0
        public void should_sort_in_place()
        {
            const int number_of_numbers = 100;
            ISorter sut = new BubbleSorter();

            var numbers_to_sort = objectMother.CreateRandomArray(number_of_numbers);
            var list_of_sorted_numbers = sut.Sort(numbers_to_sort);

            Assert.Same(numbers_to_sort, list_of_sorted_numbers);            
        }
예제 #28
0
        public async Task SortAsync_Should_Sort_Input(string input, string sortedInput)
        {
            var value         = input;
            var expectedValue = sortedInput;
            var sorter        = new BubbleSorter();

            var result = await sorter.SortAsync(value);

            Assert.AreEqual(expectedValue, result);
        }
예제 #29
0
        public void Sort_Should_Sort_Input(string input, string sortedInput)
        {
            var value         = input;
            var expectedValue = sortedInput;
            var sorter        = new BubbleSorter();

            var result = sorter.Sort(value);

            Assert.AreEqual(expectedValue, result);
        }
예제 #30
0
        public void Sort_SingleElementArray_Success()
        {
            var sorter = new BubbleSorter <int>();
            var array  = new int[1] {
                0
            };

            sorter.Sort(array);

            Assert.IsTrue(sorter.Ensure(array));
        }
예제 #31
0
        public void SortNumbers_MixedIntegers_Sorted(int[] numbers)
        {
            var bubbleSorter   = new BubbleSorter();
            var expectedResult = new List <int>(numbers);

            expectedResult.Sort();

            var result = bubbleSorter.SortNumbers(numbers);

            Assert.Equal(expectedResult, result);
        }
예제 #32
0
        public void BubbleSorter_EmptyList_RemainsEmptyList()
        {
            var expected = new List <string>();
            var sorter   = new BubbleSorter <string>();

            var actual = new List <string>();

            sorter.Sort(actual);

            Assert.AreEqual(expected, actual);
        }
예제 #33
0
        public void SortExample()
        {
            var sorter = new BubbleSorter<int>();

            var list = new List<int> {13, 5, 77, 9, 12};

            sorter.Sort(list, Comparer<int>.Default);

            Assert.AreEqual(5, list[0]);
            Assert.AreEqual(9, list[1]);
            Assert.AreEqual(12, list[2]);
            Assert.AreEqual(13, list[3]);
            Assert.AreEqual(77, list[4]);
        }
        public void Sort_By_Row_Sum_Tests(bool ascendingOrder)
        {
            int[][] jaggedArray = new int[4][];
            jaggedArray[0] = null;
            jaggedArray[1] = new int[] { 0, 5, 10, 3 };
            jaggedArray[2] = new int[] { 4, 1, 2, 3 };
            jaggedArray[3] = new int[] { 5, 1 };
            int[][] resultArray = new int[4][];
            if (ascendingOrder)
            {
                resultArray[0] = jaggedArray[3];
                resultArray[1] = jaggedArray[2];
                resultArray[2] = jaggedArray[1];
                resultArray[3] = jaggedArray[0];
            }
            else
            {
                resultArray[0] = jaggedArray[0];
                resultArray[1] = jaggedArray[1];
                resultArray[2] = jaggedArray[2];
                resultArray[3] = jaggedArray[3];

            }
            BubbleSorter bs = new BubbleSorter();
            bs.Sort(jaggedArray, new SumSorter(ascendingOrder));
            Assert.AreEqual(jaggedArray, resultArray);
        }
 public void Exceprion_Tests(int testNum)
 {
     BubbleSorter bs=new BubbleSorter();
     ISorterType sorterTypeObject = null;
     int[][] array=null;
     switch (testNum)
     {
         case 1:
             sorterTypeObject=new AbsMaxSorter(true);
             break;
         case 2:
             array=new int[4][];
             break;
     }
     bs.Sort(array,sorterTypeObject);
 }