Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Tachilka
3 / 3 / 0
Регистрация: 13.10.2010
Сообщений: 17
1

Быстрая сортировка и Обменная сортировка - реализация API функции

07.06.2011, 19:31. Просмотров 1166. Ответов 5
Метки нет (Все метки)

Всех приветствую! Делаю курсовой проект и появилась одна проблем-ка.... У меня есть готовые две программы(быстрая сортировка и Обменная сортировка), но их нужно ввести и вывести через приложение под Win32 с использование графического интерфейса пользователя, программируемого с помощью API – функций Windows. Помогите пожалуйста доделать... Очень буду благодарен... В качестве компенсации за своё потраченное время, оплатил бы денежным средством... ( ICQ 199-112-222)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  // Быстрая сортировка
#include "stdafx.h" 
#include <conio.h>
 
void sort(int arr[], int L, int R) 
{
    if (L >= R)
    return;
    int m = (L + R) /2; 
    //int m = (L + R) >>1; //сдвиг работает быстрее.
    int mediana = arr[m];
    int LL = L;
    int RR = R;
    while (LL < RR) 
    {
        while (arr[LL] < mediana)
        LL++;
        while (arr[RR] > mediana)
        RR--;
        if (LL <= RR) 
        {
            int swap = arr[LL];
            arr[LL] = arr[RR];
            arr[RR] = swap;
            LL++;
            RR--;
        }
    }
    if (LL<R)
    sort (arr , LL , R);
    if (RR > L)
    sort (arr , L , RR);
}
 
void main(void) 
{
    int arr[] =  { 1, 3, 2, 7, 5, 8, 0, 4, 6, 9 };
    int ARR_LENGTH =  sizeof (arr) / sizeof (int);
    sort (arr , 0 , ARR_LENGTH - 1);
    for (int i=0; i < ARR_LENGTH; i++)
    printf ("%2d" , arr [i] );
    printf ("\n");
    getch();
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 // обменная сортировка
#include "stdafx.h"
#include <conio.h>
 
#define size 10
 
/* Дан целочисленный массив A из N точек. Расположить значения данного массива
по убыванию в диапазоне между максимальным и минимальным значениями. 
Максимальное и минимальное значение не входят в диапазон сортировки. 
Сортировку произвести методом обмена. */
 
int main(){
 
int mas[size] = {0,-8,2,3,4,5,6,7,30,9};
int max = mas[0];  //значение максимального
int min = mas[0];  //значение минимального
int p_max = 0;     //позиция  минимального
int p_min = 0;     //позиция  минимального
 
int i,j; //индексы
//Поиск максимального и минимального.
for(i=0;i<size;i++){
        if(mas[i]<min){
    min = mas[i];
        p_min = i;
        }
    if(mas[i]>max){
    max = mas[i];
        p_max = i;
        }
}
 
//Сортировка пузырьком: простыми обменами.
for (i = p_min+1; i < p_max; i++){    
           for (j = p_max-1; j > i; j--){                       
                        if (mas[j-1] < mas[j]){
            int tmp = mas[j];
                        mas[j]= mas[j-1];
                        mas[j-1]=tmp;
                        }
        }
}
 
//вывод массива на экран
for(i=0;i<size;i++)printf("%d ",mas[i]);
printf("\n");
getch();
return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2011, 19:31
Ответы с готовыми решениями:

Сортировка Шелла быстрее чем Быстрая сортировка
В универе задали задание построить графики относительно скорости сортировок и размеров массивов....

Быстрая сортировка
Помогите, пожалуйста, исправить ошибку в сортировке void sort5(int left, int right){ int i =...

Быстрая сортировка
Есть программа написанная на си. Она генерирует массив и проводит на нём быструю сортировку в...

Быстрая сортировка Си/С++
Есть быстрая сортировка: void quick_sort(int* sarr, int j) { int size = j; int k = 0; int c...

Быстрая сортировка
Всем привет. Есть функция, которая делает что-то вроде быстрой сортировки. В функции divide есть...

5
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
07.06.2011, 23:38 2
Что значит, "их нужно ввести и вывести через приложение под Win32 с использование графического интерфейса пользователя, программируемого с помощью API – функций Windows." ?
Вы хотели сказать, что нужно визуализировать работу алгоритма? то есть наглядно показать процесс сортировки на экране?
0
Kastaneda
Jesus loves me
Эксперт С++
5058 / 3076 / 351
Регистрация: 12.12.2009
Сообщений: 7,778
Записей в блоге: 2
Завершенные тесты: 1
08.06.2011, 10:22 3
Да, похоже это и имелось ввиду. Типа как здесь. Взялся бы, да у самого сессия на носу
1
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
08.06.2011, 11:17 4
У меня есть исходник с тремя видами сортировок: пузырьковая, быстрая и обменная.
Только я код слишком коряво написал, не комментировал его. И, главное, его можно запустить только в режиме отладки в Visual Studio, как если запустить .exe файл, программа через пару секунд, так как реализовано без использования многопоточности.

Добавлено через 53 секунды
Если нужно, могу скинуть. Только аськи у меня нет, связаться нигде кроме этого форума я с вами не смогу.
0
pito211
186 / 173 / 18
Регистрация: 22.03.2010
Сообщений: 612
08.06.2011, 11:29 5
напиши по русски чё надо выводить, график или чё рисовать?
0
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
08.06.2011, 11:57 6
Исправил немного программу, теперь exe-шник не должен виснуть. Не знаю, то ли это, что тебе нужно, да и визуально оформлена не очень и исходник криво написан, но если нужен будет исходник, могу скинуть.
0
Вложения
Тип файла: rar Trening.rar (13.1 Кб, 17 просмотров)
08.06.2011, 11:57
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 11:57

Быстрая сортировка Хоара
Здрасьте. Вот писал быструю сортировку Хоара на Си, вроде все сделал, а на практике она часто не...

Быстрая сортировка (quicksort)
#include &lt;stdio.h&gt; const int N = 8; void qs(int , int, int); void main(){ int i, array;...

Быстрая сортировка не работает
Ребята помогите довести до ума прогу. :cry: Прога сама случайным образом заполняет масив например...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.