К основному контенту

Сообщения

Сообщения за декабря 14, 2017

Пузырьковая сортировка

/* Пузырьковая сортировка - сортируем раз за разом пока не получим полностью отсортированный массив в худшем случае потребуется выполнить n*n операций сравнения и перестановки элементов */ import std . stdio ; void swap ( T )( T [] arr , uint left , uint rigth ) { if ( left != rigth ) { T temp = arr [ left ]; arr [ left ] = arr [ rigth ]; arr [ rigth ] = temp ; } } void sort ( T )( T [] items ) { bool swapped ; do { swapped = false ; for ( int i = 1 ; i < items . length ; i ++) { if ( items [ i - 1 ]> items [ i ]) { swap ( items , i - 1 , i ); swapped = true ; } } } while ( swapped != false ); } void main ( string [] args ) { auto arr = [ 9 , 8 , 67 , 4 , 5 , 1 , 2 ]; sort ( arr ); foreach ( i , e ; arr ) writeln ( i , " = " , e ); }