Loading...
denis9305 avatar denis9305 5 Точки

[Homework] Advanced C# - Arrays, Lists, Stacks, Queues - Въпрос за задача 2

Може ли да постнете решение и обяснение за 2 задача от Advanced C# - Arrays, Lists, Stacks, Queuesл

Благодаря предварително.

Бях объркал.Беше написано 5 задача а всъщност исках да попитам за 2.

 

Тагове:
0
Fundamentals Module 19/09/2015 17:50:37
VTeneva avatar VTeneva 30 Точки

Здравей,

По-долу ще намериш решението ми на задачата с малко обяснения. Надявам се да помогне. :)

1. Четем от конзолата подаденото от юзъра като отделните стойности присвояваме в масив;

2. Чрез for  цикъл минаваме през всички елементи в масива като присвояваме текущата стойност на променлива min (може да се направи и с if, във втория for; повече инфо в т.4). В нея ще съхраняваме стойността на елемента за текущия цикъл. По презумпция първоначално приемаме, че min е първият елемент от цъкъла.

3. Вградения втори for цикъл минава през всички останали елементи на цикъла, т.е., ако в първия for стартираме от input[3], то вторият ще започне от input[4]. Тук идеята е, че вече сме проверили предходните елементи и не е нужно да се връщаме към тях.

4. Следващата стъпка е проверка кой елемент има по-малка стойност - input[i] или input[j]. Присвояваме на min стойността на този, който е по-малък. Може да се прескочи частта с min и да се използва if statement.  

5. Разменяме стойносттите на input[i] и input[j].

6. Принтираме вече сортнатия масив.

Сигурна съм, че може да се реши и по-друг начин, да се използва помощен масив, но се надявам това ти е било полезно, :)

using System;
using System.Linq;
public class SelectionSort
{
    public static void Main()
    {
        int[] arr = Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); // Read in integers.
        for (int i = 0; i < arr.Length; i++)
        {
            int min = arr[i];
            for (int j = i + 1; j < arr.Length; j++)
            {
                min = Math.Min(min, arr[j]); // Compare element i with the following elements.
            }
            arr[Array.IndexOf(arr, min)] = arr[i]; // Swap the values of min element and element i.
            arr[i] = min;
        }
        Console.WriteLine(string.Join(" ", arr));
    }
}
2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.