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

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

let shakerSort () =
    let a = [|9;8;7;6;5;4;3;2;1;0|]
    let mutable l = 1
    let mutable r = a.Length - 1
    let mutable k = r
    let mutable x = a.[0]
    let mutable cond = true
    while cond do
        for j = r downto l do
            if a.[j-1] > a.[j] 
            then x <- a.[j-1]; a.[j-1] <- a.[j]; a.[j] <- x; k <- j
            else ()
        l <- k + 1
        for j = l to r do
            if a.[j-1] > a.[j]
            then x <- a.[j-1]; a.[j-1] <- a.[j]; a.[j] <- x; k <- j
             else ()
        r <- k - 1 
        cond <- (l < r) 
    printfn "%A" a
 

do shakerSort ()

Комментарии

Популярные сообщения из этого блога

Кирилица в Arch Linux

После вчерашних обновлений в консоли Arch Linux при выборе русской локали вместо букв печатаются белые квадратики. Очевидно, что по какой-то причине не загружается прописанный в rc.conf шрифт. Временное лекарство от этого: выполнить команду setfont cyr-sun16 . Еще у меня в момент начальной загрузки появляется рябь на экране как от сильных электромагнитных помех в ЭЛТ, хотя у меня ЖК. Может быть это как-то связано.

Сортировка массивов в groovy

Любой массив в java и groovy можно отсортировать статическим методом: Arrays.sort(c); причем это будет очень быстро сто тысяч элементов типа int сортируются за 1 секунду на celeron M 1,8 Mg. Если это массив объектов можно использовать перегруженный метод Arrays.sort(c,comporator);

Arch Linux - руссификация консоли

Вчера, придя с работы, как всегда затеял InstallFest. Уже практически не задумываясь установил свежий арч. И тут заметил что в tty вместо русского - квадратики. Под утро нашел таки сообщение на форме, что в этом виноваты дрова от видео. Там правда речь шла о нвидиа, а у меня ати. Буду пробовать. И еще в lxterminal обратил внимание что сообщения на русском, а то что я вводил на русском потом возвращается системой в виде юникод-символов. Вот такие дела. UPDATE: драйвер не причем. переустановил в консоли(до установки X) по прежнему квадратики вместо букв. неужели придется переключатся на инглиш? Заметил что initscripts скачался c какого-то зеркала не с яндекса. возможно причина в нем.