У меня было несколько часов, думая о возможном решении этой проблемы, и я получил один, но слишком длинный, и я думаю, что я сделал решение труднее обычного.C - Sort Array Desc
Можете ли вы помочь мне достичь этого результата в C?
ввода (пример):
int input[4] = {40, 10, 50, 23}
//The solution would be 2, 0, 3 ,1
input[0] = 40;
input[1] = 10;
input[2] = 50;
input[3] = 23;
Что я хочу:
int order[4] = {2, 0, 3, 1}
Кстати, мне нужно сохранить массив ввода, так что я на самом деле нужно создать другой для заказа.
Edit:
Ну я изменил код, и это работает для меня, Thx ребята.
for (i = 0; i < 4; i++)
{
for (j = 0; j < 4; j++)
{
if (i==j)
continue;
if (decimalpart[i]<decimalpart[j])
ordem[i]++;
}
}
Это работает с удвоениями/поплавками. Это не был конкретный пример, список массивов был случайным.
Возьмем ассоциативный массив индекса и сортировки, что, используя значение этого индекса в 'input' массива. – ashiquzzaman33
Мое решение было похоже на 'int order [4] = {0,1,2,3}', а затем изменить индекс, чтобы он соответствовал решению, но это способ догадываться (алгоритм). – Exprove
Что случилось с сортировкой 'int order [4] = {0,1,2,3}' путем сравнения 'input [order [i]]' для элемента 'i'? – jods