jater
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору int partition (int * m, int a, int b) { int i = a,tmp; for (int j = a; j <= b; j++) // просматриваем с a по b { if (m[j] <= m[b]) // если элемент m[j] не превосходит m[b], { tmp=m[i]; m[i]=m[j]; m[j]=tmp; // меняем местами m[j] и m[a], m[a+1], m[a+2] и так далее... // то есть переносим элементы меньшие m[b] в начало, // а затем и сам m[b] «сверху» i++; // таким образом последний обмен: m[b] и m[i], после чего i++ } } return i-1; // в индексе i хранится <новая позиция элемента m[b]> + 1 } int quicksort (int * m, int a, int b) // a - начало подмножества, b - конец { // для первого вызова: a = 0, b = <элементов в массиве> - 1 if (a >= b) return 0; int c = partition (m, a, b); quicksort (m, a, c-1); quicksort (m, c+1, b); return 0; } #include <math.h> #include<iostream> #include<time.h> using namespace std; int main() { int const nmax=100; int A[nmax],n,s; srand(time(0)); cout<<"n: "; cin>>n; for (int i=0; i<n; i++) { A[i]=rand()%100; // Заполнение массивов } for (int i=0; i<n; i++) cout<<A[i]<<" "; cout<<endl; s=quicksort(A,0,n); cout<<s; system("pause"); return 0; } есть программа,просто не могу вывести полученный результат на экран!!!! помогите плз, очень-очень нужно!!!!!!! |