Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сортировка методом центрированной вставки

22K
24 октября 2007 года
SMiX
18 / / 23.05.2007
Совсем непонятно с ней ничего. Нужно сделать лабу со статическими массивами, содержащими данные типа int. В инете по этому методу инфы жутко мало, и все описания для нечетного кол-ва элементов и непонятно, как выбирать медиану при их четном колличестве. Помогите пожалуйста чем сможете. Может, у кого-то функция завалялась...
350
25 октября 2007 года
cheburator
589 / / 01.06.2006
Попробуй поискать на google.ru "sorting by centered insertion". Вроде что-то выдает.
502
25 октября 2007 года
Jail
550 / / 30.01.2007
[LEFT]Сортировка методом прямого включения:
Код:
#include "iostream.h"
#include "stdio.h"

void easySort( int array[], int length ){
    int i, j, item;
    for(i=1; i<length; i++){
        item = array;
        j = i;
        while ( item < array[j-1] ){
            array[j] = array[j-1];
            j--;
        }
        array[j] = item;
    }
}

void main(){
    int i, size;
    int *array;
    cout << "Easy Sort.\nEnter array dimension: ";
    cin >> size;
    array = new int[size];
    cout << "Enter " << size << " elements: ";
    for ( i = 0; i < size; i ++ ){
        cin >> array;
    }

    easySort( array, size );

    cout << "Your array after sorting: ";
    for ( i = 0; i < size; i ++ ){
        cout << array << " ";
    }
    cout << "\nPress \"Enter\" to continue..." << endl;
    getchar();
}

Сортировка методом двоичного вкючения:
Код:
#include "iostream.h"
#include "stdio.h"

void binaryInsertionSort(int array[], int col){                    
    int i, j, m, L, R;
    int item;
    for ( i = 1; i < col; i ++ ){
         item = array;
         L = 0;
         R = i;
         while ( L < R ){
            m = (L+R)/2;
               if ( array[m] <= item ){
                    L = m + 1;
               }
               else {
                    R = m;
               }
         }
         for ( j = i; j >= R+1; j -- ){
             array[j] = array[j-1];
         }
         array[R] = item;
    }
}

void main(){
    int i, size;
    int *array;
    cout << "Binary Insertion Sort.\nEnter array dimension: ";
    cin >> size;
    array = new int[size];
    cout << "Enter " << size << " elements: ";
    for ( i = 0; i < size; i ++ ){
        cin >> array;
    }

    binaryInsertionSort( array, size );

    cout << "Your array after sorting: ";
    for ( i = 0; i < size; i ++ ){
        cout << array << " ";
    }
    cout << "\nPress \"Enter\" to continue..." << endl;
    getchar();
}

Посмори, может быть это то?!
[/LEFT]
22K
25 октября 2007 года
SMiX
18 / / 23.05.2007
cheburator, нифига нету тоже =) 1 страница в гугле. В основном японские сайты без примеров =)
Jail, спасибо, но это не то... Центрированная вставка использует рабочий массив.
502
25 октября 2007 года
Jail
550 / / 30.01.2007
Прости, я немного не понял, что означает "рабочий массив"? То что необходима работа со статическим типом массива с элементами int, это ясно... У тебя есть хоть какие-то наработки, хоть что-то? Хоть часть исходников? Ну или попробуй описать то что тебе нужно более подробно :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог