Сортировка прямой вставкой подразумевает вставку элементов, подлежащих сортировке, один за другим в ранее отсортированную упорядоченную последовательность до тех пор, пока все элементы не будут вставлены. Основные этапы заключаются в следующем:
1) Сначала предположим, что первый элемент отсортирован.
2) Затем вынимаем следующий элемент, который еще нужно отсортировать, то есть следующий элемент после отсортированного элемента, вынимаем следующий элемент, устанавливаем его в качестве вставляемого элемента и сканируем задом наперед в отсортированном Последовательность элементов. Если элемент (отсортированный) больше, чем элемент, который нужно вставить, переместите элемент на следующую позицию.
3) Повторяйте шаг 2, пока не найдете позицию, в которой отсортированный элемент меньше или равен сортируемому элементу, и вставьте элемент.
4) Повторите шаги 2 и 3, чтобы завершить сортировку.
Например:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(Stringargs[]){int[]arr=newint[]{17,62,39,52,8,24};for(inti=1;i<arr.length;i++ ){//Начать сравнение со второго элемента inttemp=arr[i];//Записать текущий элемент for(intj=i-1;j>=0;j--){//Начать сравнение с последнего element if (arr[j]>temp){//Если он больше текущего элемента arr[j+1]=arr[j];//Перемещаем все элементы отсюда на одну позицию вперед arr[j]=temp; //Вставляем текущий элемент в arr[j]}}}for(inti=0;i<arr.length;i++){System.out.print(arr[i]+);}}}
Результаты бега следующие:
81724395262