Сортировка пузырьком (реализация на Java)

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

Приведем пример реализации алгоритма сортировки выбором. На вход алгоритму подается массив чисел типа int, заданный своим размером и элементами. В результате работы алгоритм выводит отсортированный массив.

На практике алгоритм применяется чрезвычайно редко в силу своей неэффективности по сравнению с более быстрыми алгоритмами сортировки. Тем не менее этот алгоритм является основой для некоторых других, более сложных методов сортировки.

Сложность алгоритма — O(n^2), где n — это число элементов массива.

Заметим, что приведенная реализация алгоритма является устойчивой, т.е. она не меняет относительный порядок элементов с одинаковыми значениями.


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(); } // Внешний цикл алгоритма совершает // ровно size итераций for (int i = 0; i < size; i++) { // Массив просматривается с конца до // позиции i и "легкие элементы всплывают" for (int j = size - 1; j > i; j--) {
// Если соседние элементы расположены
// в неправильном порядке, то меняем
// их местами
if (a[j] < a[j - 1]) { int temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } } // Выводим отсортированный массив for (int i = 0; i < size; i++) { printWriter.print(a[i] + " "); } // После выполнения программы необходимо закрыть // потоки ввода и вывода scanner.close(); printWriter.close(); } }

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

  • на Delphi

  • на Java

  • на C++