Сортировка массива по возрастанию

thmn8

Администратор
Сообщения
1 472
Реакции
311
Сайт
tehadm.ru
Нашел полезный пример, в котором предлагает ввести семь чисел, после чего программа их отсортирует по возрастанию.
Вся программа условно поделена на три блока:
  1. ввод чисел
  2. сортировку
  3. вывод отсортированного массива
Сначала в цикле мы вводим все числа для массива. Так как метод Console.ReadLine() возвращает вводимую строку, а нам нужны числа, поэтому мы эту строку переводим в число с помощью метода Int32.Parse(Console.ReadLine()).

Затем сортируем: выполняем проходы по массиву и сравниваем элементы. Если элемент с меньшим индексом больше элемента с большим индексом, то меняем элементы местами.
C#:
using System;
namespace SortApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // ввод чисел
            int[] nums = new int[7];
            Console.WriteLine("Введите семь чисел");
            for (int i = 0; i < nums.Length; i++)
            {
                Console.Write("{0}-е число: ", i + 1);
                nums[i] = Int32.Parse(Console.ReadLine());
            }
 
            // сортировка
            int temp;
            for (int i = 0; i < nums.Length-1; i++)
            {
                for (int j = i + 1; j < nums.Length; j++)
                {
                    if (nums[i] > nums[j])
                    {
                        temp = nums[i];
                        nums[i] = nums[j];
                        nums[j] = temp;
                    }
                }
            }
            
            // вывод
            Console.WriteLine("Вывод отсортированного массива");
            for (int i = 0; i < nums.Length; i++)
            {
                Console.WriteLine(nums[i]);
            }
            Console.ReadLine();
        }
    }
}
 

Вложения

  • ConsoleApp1.exe
    5 КБ · Просмотры: 1
Особенно, интересен кусок кода, требующий ввод текста:
C#:
int[] nums = new int[7];
            Console.WriteLine("Введите семь чисел");
            for (int i = 0; i < nums.Length; i++)
            {
                Console.Write("{0}-е число: ", i + 1);
                nums[i] = Int32.Parse(Console.ReadLine());
            }
 
Последнее редактирование:
Немного переделал)) Сама сортировка довольно трудно воспринимается, но работает))

Java:
public class ArrSoft {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Введите длину массива:");

        int sizeArray = scanner.nextInt();
        int[] arr = new int[sizeArray];

        for (int i = 0; i < sizeArray; i++) {
            System.out.println("введите " + (i + 1) + "-e число:");
            arr[i] = scanner.nextInt();
        }

        int temp;
        for (int i = 0; i < arr.length; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println("Наш отсортированный массив:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}
 
Я кстати, цикл for с трудом "воспринимаю". В том смысле, как он прощитывает. Не сразу понимаю.
 
Назад
Верх Низ