Это домашнее задание, поэтому вместо прямого написания кода я сначала укажу, где вы ошиблись.
В алгоритме сортировки вставки, очевидно, должна быть какая-то замена, которую необходимо выполнить между элементами, которые находятся не на своем месте (которые необходимо вставить). Поэтому начните с размышлений о том, как поменять местами два элемента массива. Обратите особое внимание на случаи, когда одна голова или одна хвост.
В вашем реализованном коде нет следов перестановки указателей, так что здесь вы ошибаетесь.
Далее вы должны подумать о случаях, когда нам нужно сортировать. В данном случае это довольно просто. Если текущий элемент и следующий за ним отсортированы (в порядке возрастания, текущий ‹ следующий). Тогда ничего не нужно делать, а просто сделать следующий текущим.
Тогда вы, очевидно, можете сделать вывод, что нарушение этого случая - это когда вам нужно поменять местами элементы. После замены (с должным вниманием к тому, где были и будут указатели после сортировки) повторяйте процесс, пока не упретесь в нулевую стену.
PS: Это возможный дубликат другого вопроса SO.
person
rajaditya_m
schedule
24.10.2013