Сортировка вставками (реализация на Java)

Java   24 февраля 2012  Автор статьи:  

Сортировка вставками на языке программирования java не имеет никаких особенностей в реализации, поэтому я просто продемонстрирую код.

import java.io.PrintWriter;
import java.util.Scanner;

public class Solution {
public static void main(String[] args) {
// Для считывания данных воспользуемся классом Scanner
// Для вывода - классом PrintWriter(как и во всех статьях по алгоритмам)
Scanner scanner = new Scanner(System.in);
PrintWriter printWriter = new PrintWriter(System.out);

// Считываем размер массива,
// который необходимо отсортировать
int size = scanner.nextInt();

// Создаем массив размера size
// для хранения чисел
int[] a = new int[size];

// Считываем массив
for (int i = 0; i < size; i++) { a[i] = scanner.nextInt(); } //главный цикл for (int i = 0; i < size; i++) { int temp = a[i];// запомним i-ый элемент int j =i-1;//будем идти начиная с i-1 элемента while(j >= 0 && a[j] > temp)
// пока не достигли начала массива
// или не нашли элемент больше i-1-го
// который храниться в переменной temp
{
a[j + 1] = a[j];
//проталкиваем элемент вверх
j--;
}
a[j + 1] = temp;
// возвращаем i-1 элемент
}
// Выводим отсортированный массив
for (int i = 0; i < size; i++) { printWriter.print(a[i] + " "); } // После выполнения программы необходимо закрыть // потоки ввода и вывода scanner.close(); printWriter.close(); } }

  • Ярослав

    В главном цикле счетчик і начинается с 0 и идет вверх (і++), а j, которьій зависит от і идет вниз (j—)
    Следовательно еще на етапе присвоения j получит значение -1 и ваша реализация вьілетит в трубу.

Научиться программировать

  • на Delphi

  • на Java

  • на C++