class
GFG
{
static
void
print(
int
arr[],
int
n)
{
for
(
int
i =
0
; i < n; i++)
{
System.out.print(arr[i] +
" "
);
}
System.out.println();
}
static
void
swapMax(
int
[] arr,
int
target_position,
int
current_position)
{
int
aux =
0
;
for
(
int
i = current_position;
i > target_position; i--)
{
aux = arr[i -
1
];
arr[i -
1
] = arr[i];
arr[i] = aux;
}
}
static
void
maximizeArray(
int
[] arr,
int
length,
int
swaps)
{
if
(swaps ==
0
)
return
;
for
(
int
i =
0
; i < length; i++)
{
int
max_index =
0
, max = Integer.MIN_VALUE;
int
limit = (swaps + i) > length ?
length : swaps + i;
for
(
int
j = i; j <= limit; j++)
{
if
(arr[j] > max)
{
max = arr[j];
max_index = j;
}
}
swaps -= (max_index - i);
swapMax(arr, i, max_index);
if
(swaps ==
0
)
break
;
}
}
public
static
void
main(String[] args)
{
int
arr[] = {
1
,
2
,
9
,
8
,
1
,
4
,
9
,
9
,
9
};
int
length = arr.length;
int
swaps =
4
;
maximizeArray(arr, length, swaps);
print(arr, length);
}
}