Сортировка чисел массива в порядке возрастания - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток всем. Я новичок , написал код для сортировки чисел массива в порядке возрастания , пишет ошибка : бесконечный цикл или рекурсия. Исправьте плз код и скажите что не так.(там вроде рекурсия не бесконечно должна быть ведь поставил условие)
class Program
    {
        static void Main()
        {
            int[] mas = { 95, 52, 34, 79 , 23, 84 ,98 ,32 ,94 ,41, };
 
            for (int i = 0; i < mas.Length - 1; i++)
            {
                int j = i + 1;
                if (mas[i] > mas[j])
                {
 
                    int t = mas[i];
                    mas[i] = mas[j];
                    mas[j] = t;
 
                }
                if (mas[i] < mas[j])
                {
                    Program.Main();
                }
                else
                {
                    for (int p = 0; p < mas.Length; p++)
                    {
 
                        Console.WriteLine(mas[p]);
 
                    }
                    Console.ReadLine();
                }
            }
        }
    }

Решение задачи: «Сортировка чисел массива в порядке возрастания»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = { 1, 3, 5, 4, 2 };
            Array.ForEach(a, Console.WriteLine);
            Console.WriteLine();
            Sort(a);
            Array.ForEach(a, Console.WriteLine);
            Console.ReadKey();          
        }
 
        static void Sort(int[] a)
        {
            qSort(a, 0, a.Length - 1);
        }
 
        private static void qSort(int[] a, int low, int high)
        {
            int i = low;
            int j = high;
            int x = a[(low + high) / 2];  // x - опорный элемент посредине между low и high
            do
            {
                while (a[i] < x) ++i;  // поиск элемента для переноса в старшую часть
                while (a[j] > x) --j;  // поиск элемента для переноса в младшую часть
                if (i <= j)
                {
                    // обмен элементов местами:
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                    // переход к следующим элементам:
                    i++; j--;
                }
            } while (i < j);
            if (low < j) qSort(a, low, j);
            if (i < high) qSort(a, i, high);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы