26Июл/100
Сортировка "Шейкер"
int shaker_sort(int *&mArray, int _size) { int L = 0; int R = _size - 1; int k = _size - 1; do { for( int j = R; j >= L; j--) //Ставим на место самый маленький элемент { if(mArray[j-1] > mArray[j]) { std::swap(mArray[j], mArray[j-1]); k = j; } } L = k + 1; //Сдвигаем левую границу for(int j = L; j <= R; j++) //Ставим на место самый большой элемент { if(mArray[j-1] > mArray[j]) { std::swap(mArray[j], mArray[j-1]); k = j; } } R = k - 1; //Сдвигаем правую границу } while(L < R); }
Leave a comment