Я пытался создать частично отсортированный массив.Generate Half-Sorted BubbleSort
Есть много способов сделать & Я выбрал свой собственный метод, который должен использовать любой алгоритм сортировки, там помещен «перерыв» в середине сортировки.
В этом случае я выбираю Bubble sort.
То, что я сделал, я остановить сортировку значения при счетчик достиг половин значений п
Но я понятия не имею, как это не работает, основываясь на моей логике.
Код:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> a;
int i, j, p,n,temp;
cout << "Enter No. of Elements : ";
cin >> n;//user desired of total integers
for (i = 1; i <= n; i++)//this will loop from 1 to n value
{
a.push_back(i);//push into a vector
}
for (p = 1; p <= n ; p++)
{
for (j = 1; j <= n; j++)
{
if (j<n/2)// this is where, the sorting will stop
{
if (a[j] > a[j + 1])
{
temp = a[j]; // Interchange Values
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
cout << "\nAfter Sorting : \n";
for (i = 0; i <= n-1; i++)
{
cout << a[i] << endl;
}
system("pause");
return 0;
}
Вы понимаете, что вы сначала построить отсортированный массив? – quantdev
Ваш вопрос немного расплывчатый. Вы пытаетесь отсортировать только первую половину массива и оставить вторую половину неизменной? Причина, если это так, это просто вопрос замены n на n/2 в ваших типах циклов ... – dragosht
, но я сделал свое заявление, чтобы остановить сортировку в середине –