Студопедия Главная Случайная страница Обратная связь

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

Задание. на тему "Обработка последовательности информации"


Курсовая работа

на тему "Обработка последовательности информации"

Вариант 1.1

 

Выполнил:

студент гр. ИС-441

Трофименко П.М.

 

Новосибирск, 2014

 

Задание

Реализовать динамическую библиотеку сортировок. Алгоритмы сортировок выбираются в соответсвии с вариантом задания. Проанализировать эффективность алгоритмов сортировки. Разработать демонстрационную программу, использующую созданную билиотеку.

Алгоритм Bubble Sort

Алгоритм Bubble Sort...Сортировка простыми обменами, сортиро́вка пузырько́м (англ. bubble sort) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n^2).

Исходныйт код BubbleSort:

void bubble_sort (int *a, int n) {

int i, t, s = 1;

while (s) {

s = 0;

for (i = 1; i < n; i++) {

if (a[i] < a[i - 1]) {

t = a[i] = a[i - 1];

a[i - 1] = t;

s = 1;

}

}

}

}

Алгоритм Quick Sort

Quicksort - один из самых быстрых известных универсальных алгоритмов сортировки массивов: в среднем O(nlogn) обменов при упорядочении n элементов; из-за наличия ряда недостатков на практике обычно используется с некоторыми доработками.

Исходный код алгоритма:

void quick_sort (int *a, int n) {

int i, j, p, t;

if (n < 2)

return;

p = a[n / 2];

for (i = 0, j = n - 1;; i++, j--) {

while (a[i] < p)

i++;

while (p < a[j])

j--;

if (i >= j)

break;

t = a[i];

a[i] = a[j];

a[j] = t;

}

quick_sort(a, i);

quick_sort(a + i, n - i);

}

 

 

Ход работы

 

Для создания динамической библиотеки, в первую очередь, необходимо создать файлы, в которых будут содержаться функции, которые войдут в нашу библиотеку. Я создал 2 файла quick.c и bubble.c. После этого необходимо скомпилировать их с ключом –fPIC. Команда будет выглядеть так:

gcc -fPIC –c quick.c

В результате мы получим файлы quick.o и bubble.o.

Для создания динамической библиотеки используется ключ –shared:

gcc –shared –o libsort.so quick.o bubble.o

Эта команда скомпилировала нашу библиотеку.

Следующим шагом будет компиляция программы с подключением нашей новой библиотеки. Для начала необходимо скомпилировать файл, содержащий main:

gcc –c bubble_sort.c

На выходе получаем файл bubble_sort.o. Следующим шагом будет компиляция результирующей программы с подключением библиотеки:

gcc bubble_sort.o –L. libsort.so –o bubbleprog

В итоге мы получили файл, который будет получать функцию сортировки из динамической библиотеки. Но есть одно «но». При запуске мы получили ошибку. Проблема в том, что динамический линковщик не может найти нашу библиотеку, так как у него нет данных о её местоположении. Эта проблема решается созданием специальной переменной среды LD_LIBRARY_PATH, в которой перечисляются все каталоги, содержащие пользовательские динамические библиотеки. Устанавливается она следующим образом:

LD_LIBRARY_PATH=/root^${LD_LIBRARY_PATH}

export LD_LIBRARY_PATH

После проделанных манипуляций наша программа запустилась и отработала без ошибок.

 




<== предыдущая лекция | следующая лекция ==>
Put the following sentences into the correct gaps in the text. | PROMOTIONAL TOOLS AND ADVERTISING

Дата добавления: 2015-09-04; просмотров: 522. Нарушение авторских прав; Мы поможем в написании вашей работы!




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Экспертная оценка как метод психологического исследования Экспертная оценка – диагностический метод измерения, с помощью которого качественные особенности психических явлений получают свое числовое выражение в форме количественных оценок...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Studopedia.info - Студопедия - 2014-2026 год . (0.014 сек.) русская версия | украинская версия