Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Статикалық және динамикалық массивтер. Айырмашылықтары. Мысал келтіріңіз






Массивтер.

Массив ө те қ арапайым жә не ө те керекті зат. Қ арапайым мысал келтірейік: сен директориядан 50 файлдың аттын оқ ыдың, сағ ан оларды зердеге орналастыру керек, олармен кейін жұ мыс істеу ү шін. Массивті қ олданбасаң, сен 50 айнымалы жариялап, ә р қ айсына файл атын жазу керек. Бұ л ойғ а сыймайтын зат. Бірақ ойғ а ең сыймайтыны осы айнымалылармен жұ мыс істеу, олардың ішінде сағ ан керекті керек мә ліметтерді іздеу. Массив мү лдем басқ аша. Массив кө мегімен бір атпен сенің 50 файл атын бір атпен сақ тауғ а болады. Оларды сансыз рет кез-келген циклде ақ таруғ а болады, тек қ ана массив мү шесінің индексін ө згерте отырып.

Массив – бір атпен біріккен, сансыз мә ндер.

Массивті қ олданбас бұ рын жариялау керек. Ол тура айнымалы сияқ ты жарияланады. Егер сен оны процедурада локальды жарияласаң, ол осы процедурада қ олайлы болады, басқ а еш жерде емес, егер (General)-(Daclarations) бө лім формасында жарияланса – онда барлық пішінде, ал егер сағ ан оны глабольды тү рде жариялау керек болса, яғ ни барлық проектіде қ олайлы болу ү шін, онда оны Public кілтті сө зімен стандартты модульде жариялау керек. Массивтер статистикалық жә не динамикалық болады.

Статистикалық массивтер.

Статистикалық массив – бұ л сен алдын-ала оғ ан қ анша айнымалыны жазатынды білесің, яғ ни егер сен 10 мү шеге массив жарияласаң, онда оғ ан 11 мү шені мү лдем кіргізе алмайсың. Пішінде ол былай жарияланады:

Dim Chislo(9) As Long

Dim – оператор, ол айнымалыны жариялағ ан сияқ ты, массивті жариялап жә не оғ ан зердеден орын бө леді.

Chislo – бұ л тек ат, айнымалығ а сияқ ты ойдан шығ арылады, жә не сол талаптарғ а лайық ты.

(9) – массивтегі элемент саны – олар 10. Неге олай. Массив элемент саны нолден бастап белгіленеді, сондық тан массивте он элемент, 0, 1, 2, 3, 4, 5, 6, 7, 9, нө мірлерімен. Егер сағ ан бұ л тә ртіп ұ намаса, онда Option Base 1 операторы қ олданылады, ол Declarations бө лімінде тіркеледі жә не барлық элеметтердің бірінші массивін бағ дарламада бірге байлайды.

As Long– массив мә ндерінің типін анық тау жай айнымалының типі сияқ ты. Ә ркезде массивтің барлық элементтері бір типті болады. Егер олай болмаса немесе қ ай типті мә лімет екенін білмесең, Variant типін беруге болады, бірақ ол керегі жоқ, бұ л тип зерденің кө п кө лемін алады, ә сіресе егер массив кө лемді болса.

Динамикалық массивтер.

Массивте қ анша элемент бар екенін алдын ала білмейтін жағ дайлар болады. Сондық тан ө лшемі шексіз екенін жариялау керек, мысалы

Dim Mass () as String

Оны қ олданбас бұ рын, оның ө лшемін кө рстеіп қ айта жариялау керек. Redim операторы арқ ылы жасалады.

Redim Mass (5) as String

Динамикалық массивті қ олданудың екі тү рі бар.

Бірінші жол, бұ л қ анша массив элементтері бар екенін санаймыз, содан кейін ө лшемін жариялаймыз. Бұ л жол ың ғ айсыз, ө йткені екі цикл қ ұ ру керек: біреуі қ анша элемен барын, ал екіншісі массив айнымалысына элемент енгізеді.

Екінші жол, бұ л циклде массив элементерінің саны кө бейгенін қ айтадан жариялап отыру керек.

Peserve кілттік сө зін қ олдану керек:

RedimPreserve Mass (5) as String

11. Минимумды табу арқ ылы сұ рыптау жә не қ арапайым орын ауыстырып сұ рыптау алгоритмдерінің айырмашылық тары. Сортировка поиском минимума Итак, мы придумали алгоритм для упорядочения любого набора чисел. на каждом шаге наш алгоритм находит наименьшее число в исходном наборе, удаляет его оттуда и записывает в конец набора, представляющего результат. Такой способ называют сортировкой поиском минимума.

Реализация алгоритма Пусть нам дан массив из N чисел. Заметим, что количество чисел, которые мы храним, по ходу работы алгоритма не изменяется: на каждом шаге мы просто переносим одно из чисел из исходного набора в результирующий. Поэтому нам нет надобности заводить новый массив для хранения результата: мы сможем хранить его в освободившихся ячейках старого массива.

После k-го хода результат содержит k чисел, а исходный набор — N-k. Договоримся, что текущий результат мы будем хранить в первых k элементах массива. Разберем подробнее, как это можно реализовать. Для этого вновь обратимся к нашему примеру: 3, 6, 1, 2, 9, 5.

На первом шаге мы находим наименьшее число — 1 — и должны переместить его на первое место. Но там уже записано число 3, куда же его деть? Ответ прост: на место числа 1. Таким образом, мы просто меняем местами два элемента массива: 1 | 6, 3, 2, 9, 5.

Мы условно разделили массив на две части: в левой части хранится уже отсортированная часть - текущий результат, в правой - оставшиеся элементы исходного набора.

На втором шаге мы находим минмиальное число в правой части — среди элементов массива со 2-го по 6-й (в общем случае — по N-й) — и меняем его местами с числом, стоящим на втором месте: 1, 2 | 3, 6, 9, 5.

Далее нам следует поставить следующее минимальное число — 3 — на третье место, но оно уже и так там стоит. Впрочем, мы не будем обращать на это внимание, и просто как бы поменяем его само с собой: 1, 2, 3 | 6, 9, 5.

Попробуем записать действия, которые нам предстоит проделать на шаге с номером k. Сначала нам нужно найти наименьшее среди чисел, записанных в k, k+1,..., N позициях массива. После этого нам нужно поменять этот элемент с k-м.

Сколько таких шагов нужно сделать, чтобы полностью отсортировать массив? Напрашивается ответ " N", но не будем торопиться. Пусть сделан N-1 шаг. Тогда в правой, неотсортированной части массива останется одно число. Какое это число? Ясно, что это самое большое число в массиве. Где оно в итоге должно оказаться? На последнем месте в массиве. Но оно уже и так там! Поэтому N-й шаг алгоритма выполнять не нужно.

Сортировка методом простого включения (сдвиг-вставка, вставками, вставка и сдвиг)

Хотя этот метод сортировки намного менее эффективен, чем сложные алгоритмы (такие как быстрая сортировка), у него есть ряд преимуществ: - прост в реализации; -эффективен на небольших наборах данных, на наборах данных до десятков элементов может оказаться лучшим; - эффективен на наборах данных, которые уже частично отсортированы; - это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы); - ожет сортировать массив по мере его получения; - не требует временной памяти, даже под стек.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.