Я написал алгоритмы сортировки выбором и вставкой, которые дают мне неправильные несортированные результаты. Вот мой код для сортировки выбором:
public class SelectionSort {
public static void main(String[] args) {
int[] arr = {23,43,45,3,54,55,23,12,22};
int min;
int temp = 0;
for(int i = 0; i < arr.length-1; i++)
{
min = i;
for(int j = i+1; j<arr.length; j++)
{
if(arr[j] < arr[min])
{
min = j;
}
temp = arr[j];
arr[j] = arr[min];
arr[min] = temp;
}
}
for(int i = 0; i < arr.length; i++)
{
System.out.print(arr[i]+" ");
}
}
}
Выход: 45 55 54 43 23 23 22 12 3
Это не отсортировано, и я хочу, чтобы оно сортировалось в порядке возрастания.
Вот моя сортировка вставками:
public class Insertion {
public static void main(String[] args) {
int[] arr = {2,4,6,5,4,3,5,3};
for(int i = 1; i < arr.length; i++)
{
int temp = arr[i];
int j = i;
while( j > 0 && arr[j-1] > arr[j])
{
arr[j] = arr[j-1];
j = j-1;
}
arr[j] = temp;
}
for(int i = 0; i < arr.length; i++)
{
System.out.print(arr[i] + " ");
}
}
}
Выход: 2 4 5 4 3 5 3 6