Я новичок и сейчас пытаюсь второй день реализовать SelectionSort для практических целей.Алгоритм у меня работает в большинстве случаев, но не всегда.К сожалению, мне совершенно непонятно, почему это не всегда работает.Пример один, где это не работает.
#include <stdio.h>
int* selectionSort(int a_count, int *a);
int main(void)
{
int a[] = {4,2,3,4,4,9,98,98,3,3,3,4,2,98,1,98,98,1,1,4,98,2,98,3,9,9,3,1,4,1,98,9,9,2,9,4,2,2,9,98,4,98,1,3,4,9,1,98,98,4,2,3,98,98,1,99,9,98,98,3,98,98,4,98,2,98,4,2,1,1,9,2,4};
int i, a_count = 73;
int *result = selectionSort(a_count, a);
for(i = 0; i < a_count; i++){
printf("%i ", result[i]);
}
return 0;
}
int* selectionSort(int a_count, int* a) {
int i, j, min = 0, tmp;
for(i = 0; i < a_count - 1; i++){
min = i;
printf("min_i = %i\n", min);
for(j = i + 1; j < a_count; j++){
printf("j = %i ", j);
if(a[j] < a[min]){
printf("%i < %i\n", a[j], a[min]);
printf("min is changed: ");
min = j;
printf("min_j = %i\n", min);
}
tmp = a[i];
a[i] = a[min];
a[min] = tmp;
}
}
return a;
}
Большое спасибо за вашу помощь!