У меня есть назначение, и я должен использовать алгоритм inserttionSort для односвязного списка в C. Функция вставки и печати списка уже задана.
struct le{
int value;
struct le *next;
};
typedef struct le listenelement;
typedef listenelement *list;
void insert(int v, list *l){
listenelement *new;
new = malloc(sizeof(listenelement));
new->value = v;
new->next = *l;
*l = new;
Итак, я пробовал это много раз, а также с разными версиями, которые никогда не работали. Это то, что я до сих пор:
void sort(list *l, int m){
struct le *list = NULL;
struct le *m = *l;
while(m != NULL){
struct le *next = m->next;
insert(&list, m);
m = next;
}
*l = list;
}
m - это параметр для (положительных значений, включая 0) чисел. Если m отрицательно, отрицательный знак следует игнорировать и все равно сортировать по алгоритму inserttionSort.
На данный момент основной проблемой является сам алгоритм вставки сортировки и меньше отрицательных чисел.