Предположим, что у меня есть массив со следующими элементамиСортировка нескольких заданных диапазонов в массиве
int arr2[]={21,31,41,51,54,29,15,18,19,16,17};
и у меня есть второй массив обр
int arr[]={4,2,5};
Теперь я хочу, чтобы отсортировать arr2 с помощью обр в ОКС таким образом, что он получает отсортированный, как это и последний массив становится
Final array should be 21,31,41,51,29,54,15,16,17,18,19
к сведению, что обр [0] = 4, следовательно, первый четыре элемента сортируются в ASC 21,31,41,51
затем обр [1] = 2, следовательно, следующие два элемента сортируются в ACS, так что она становится 21,31,41,51,29,54
, затем arr [2] = 5, следовательно, следующие пять элементов будут отсортированы в ASC, поэтому он станет 21,31,41,51,29,54,15,16,17,18,19
сейчас окончательный массив становится 21,31,41,51,29,54,15,16,17,18,19
Как я могу выполнить эту сортировку?
код, я использую, чтобы сделать это
int arr2[]={21,31,41,51,54,29,15,18,19,16,17};
int arr[]={4,2,5};
Я смог добиться результата с ниже кода, но проблема в том, что я не могу сделать его коротким, когда число массива/элементы не известны ,
for (i=0;i<4-1;i++)
{
for (j=i+1;j<4; j++)
{
if(arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (i=5;i<6-1;i++)
{
for (j=i+1;j<7; j++)
{
if(arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (i=7;i<11-1;i++)
{
for (j=i+1;j<10; j++)
{
if(arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
Пожалуйста, подумайте о принятии одного из ответов, если он отвечает на ваш вопрос. –