C/C++

Проблемы с сортировкой массива методом пузырька.

Плохо знаю синтаксис языка. Не понимаю, в чем дело? Первые 10 чисел - введены мной.
Novelxxx
Novelxxx
89
int temp; const int sz= 10;
int arr[sz]= {5,7,2,1,8,9,3,0,4,6};

for (int c=0; c< sz; c++) cout << arr[c] << '\t';
cout << endl;

for (int i = 0; i < sz - 1; i++) {
for (int j = 0; j < sz - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// меняем элементы местами
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int c=0; c< sz; c++) cout << arr[c] << '\t';
cout << endl;
Alexey Shipkov
Alexey Shipkov
21 700
Лучший ответ
Что это у Вас за белиберда такая? Вот же сортировка пузырьком по возрастанию правильно введённого с экрана массива:
using namespace std;
int main()
{
const int n = 10;
int i, j, a[n];
for (i = 0; i < n; i++) cin >> a[i];
for (i = 1; i < n; i++)
for (j = n - 1; j >= i; j--)
if (a[j - 1] > a[j]) swap(a[j - 1], a[j]);
for (i = 0; i < n; i++) cout << a[i] << ' ';
}
У Вас же почему-то массив а вообще не вводится из-за одной мелкой ерунды, да и сам процесс bubble-sorting’a какой-то странный. А такой вот, к примеру для сравнения, способ сортировки оказывается намного быстрее и эффективнее:
#include <iostream>
#include <algorithm>
using namespace std; int main() { int i, j, n;
cout << "n: "; cin >> n; int *a = new int [n];
for (i = 0; i < n; i++) std::cin >> a[i];
sort(a, a + n); for (i = 0; i < n; i++)
cout << a[i] << ' '; }