Сортировка Шелла (Реализация на C#)

C#   8 июля 2012  Автор статьи:  

Алгоритм сортировки Шелла представляет собой модифицированную версию алгоритма сортировки вставками. Поэтому он чуть более эффективен.
Реализация данного алгоритма на C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sort
{
class Program
{
static void Main()
{
// Считываем размер массива,
// который необходимо отсортировать
int size;
size = Convert.ToInt32(Console.ReadLine());
// Динамически выделяем память под
// хранение массива размера size
int[] a = new int [size];
//считываем строку
string str = Console.ReadLine();
//разбиваем по пробелам
string[] mas = str.Split(' ');
//парсим в массив
for (int i = 0; i < size; i++) { a[i] = int.Parse(mas[i]); } int step = size / 2;//инициализируем шаг. while (step > 0)//пока шаг не 0
{
for (int i = 0; i < (size - step); i++) { int j = i; //будем идти начиная с i-го элемента while (j >= 0 && a[j] > a[j + step])
//пока не пришли к началу массива
//и пока рассматриваемый элемент больше
//чем элемент находящийся на расстоянии шага
{
//меняем их местами
int temp = a[j];
a[j] = a[j + step];
a[j + step] = temp;
j--;
}
}
step = step / 2;//уменьшаем шаг
}
// Выводим отсортированный массив
for (int i = 0; i < size; i++) { Console.Write(a[i]); Console.Write(' '); } } } }

  • Nikki

    Большое спасибо! Хоть один нормальный и главное понятный пример! Еще раз спасибо!

Научиться программировать

  • на Delphi

  • на Java

  • на C++