24.09.2008, 21:47
общий
это ответ
Здравствуйте, Visual Scooby!
есть пузырьки разного размера, расположенные друг на другом.
чем пузырек больше, тем он легче и всплывает над более мелкими собратьями, т.е. если пузырек большего размера оказывается под меньшим - он обменивается с ним местами, так повторяется для всех пар. в результате самые большие оказываются вверху, самые маленькие внизу.
Это самый простой и пожалуй самый медленный способ сортировки.
Реализация в приложении:
Приложение:
#include <iostream>
#include <stdio.h>
void printArray(int* arr, unsigned size)
{
for(unsigned i = 0; i < size; ++i){
if(i != 0)
std::cout << ", ";
std::cout << arr[i];
}
std::cout << std::endl;
}
#define ArraySize 10
void main(int argc, char* argv[])
{
int array[ArraySize];
// заполняем случайными данными
for(unsigned i = 0; i < ArraySize; ++i)
array[i] = rand() % 100;
printArray(array, ArraySize);
for(unsigned j = 1; j < ArraySize - 1; ++j)
for(unsigned i = 0; i < ArraySize - j; ++i) // цикл до ArraySize - j, т.к. после каждой итерации по j на верху уже самый большой
if(array[i] > array[i+1]){ // нижний пузырек больше - меняем местами
int tmp = array[i];
array[i] = array[i+1];
array[i+1] = tmp;
}
printArray(array, ArraySize);
}