#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();
}
Сортировка методом центрированной вставки
Совсем непонятно с ней ничего. Нужно сделать лабу со статическими массивами, содержащими данные типа int. В инете по этому методу инфы жутко мало, и все описания для нечетного кол-ва элементов и непонятно, как выбирать медиану при их четном колличестве. Помогите пожалуйста чем сможете. Может, у кого-то функция завалялась...
Попробуй поискать на google.ru "sorting by centered insertion". Вроде что-то выдает.
Код:
Сортировка методом двоичного вкючения:
Код:
#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();
}
#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]
Jail, спасибо, но это не то... Центрированная вставка использует рабочий массив.
Прости, я немного не понял, что означает "рабочий массив"? То что необходима работа со статическим типом массива с элементами int, это ясно... У тебя есть хоть какие-то наработки, хоть что-то? Хоть часть исходников? Ну или попробуй описать то что тебе нужно более подробно :)