Бинарный поиск — теория и реализация на Golang
Я наконец закончил первую статью из своего планируемого цикла статей для погромистов и не только. 

В ней я подробно разобрал, что такое «бинарный поиск» и как оно работает — с картинками, блок-схемами и так далее, а также написал пример его реализации на Golang.

Полностью копировать сюда всю статью не стану, но покажу пару ее частей. Например, блок-схема бинарного поиска выглядит так:


[Изображение: binary_poisk_block-scheme.png]
А его полная реализация на Go так:

Код:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    var elems, lookingFor int

    fmt.Print("Number of elements? ")
    fmt.Scan(&elems)

    var array = make([]int, elems)

    fmt.Print("Generated array: ")
    for i := 0; i < elems; i++ {
        array[i] = i
        fmt.Print(strconv.Itoa(i) + " ")
    }
    fmt.Println()

    fmt.Println("What are we looking for:")
    fmt.Scan(&lookingFor)

    var assumption, result = binarySearch(&array, lookingFor)
    if result {
        fmt.Println("Found: " + strconv.Itoa(assumption))
    } else {
        fmt.Println("Nothing found!")
    }
}

func binarySearch(array *[]int, lookingFor int) (int, bool) {
    fmt.Println("Looking for...")
    var mid, assumption int

    min := 0
    high := len(*array) - 1

    for min <= high {
        mid = (min + high) / 2
        assumption = mid
        if assumption == lookingFor {
            return assumption, true
        }
        if assumption > lookingFor {
            high = mid - 1
        } else {
            min = mid + 1
        }
    }
    return 0, false
}

В статье подробно рассмотрен принцип действия этого алгоритма и обоснована его необходимость как такового. За подробностями добро пожаловать на страничку статьи на моем блоге. Комментариям и прочему буду рад и там, и тут.
Ответ
Хм, а почему бы не опубликовать весь текст на биндев и внизу указать ссылку?
Ответ
Это самореклама?

Публикуйте хотя-бы до середины, чтоб интригу оставить и захотелось перейти в Ваш блог.

 обрезать на самом начале - уже не интересно, да и не уважительно к читателям. Не на "Швабре" же, да и там полные посты публикуют всегда.
Ответ
(15.08.2022 19:Aug)doesm Написал: обрезать на самом начале - уже не интересно
Поддерживаю. В данном виде пост даже не интригует, чтобы перейти по ссылке. Это больше тянет на "список интересных статей", состоящий из одного элемента. @Zhbert, хоть бы интригу создал, что ли. ☺
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(15.08.2022 19:Aug)doesnm Написал: Хм, а почему бы не опубликовать весь текст на биндев и внизу указать ссылку?

С точки зрения SEO один и тот же текст постить на двух площадках — очень нехорошо. Снижает рейтинг в поиске и вообще может кучку проблем создать. Поэтому полное копирование текста не вариант. Да и во второй раз мне было бы лень все заново оформлять, т.к. при копировании форматирование слетело бы стопудово.

(15.08.2022 19:Aug)mord0d Написал: Поддерживаю. В данном виде пост даже не интригует, чтобы перейти по ссылке. Это больше тянет на "список интересных статей", состоящий из одного элемента. @Zhbert, хоть бы интригу создал, что ли. ☺

Мы вроде в чатике пару недель назад обсуждали, что вариант с ссылкой на оригинал будет норм. 

Окей, больше не буду сюда приносить свои статьи.
Ответ
Да ладно, нормально. Тем более что в статье по ссылке есть ссылка на форум.

Пусть будет.
It's time to kick gum and chew ass. And i'm all out of ass.
Ответ
Кстати, по поводу копирования текстов еще. На крупных площадках с модерацией, например, на «Типичном Программисте» или на зарубежном "Better Programming", есть требование уникальности текста на 80% минимум, это проверяется перед публикацией на стадии модерации. Говорю по опыту — пока на Тпрогера оформлял статью, задолбался переписывать самого себя, потому что части стать гуглились с меня на Хабре.
Ответ
аа
(16.08.2022 09:Aug)Zhbert Написал: Мы вроде в чатике пару недель назад обсуждали, что вариант с ссылкой на оригинал будет норм. 

Окей, больше не буду сюда приносить свои статьи.
Не-не-не, ты не понял посыла. Я не предлагаю выкладывать полностью (всё же это твоя статья), но заинтересуй посетителя этого треда пройти по ссылке. Не обязательно скопировав больший кусок статьи, добавь сюда от себя что-нибудь, что даст понять что по ссылке интересно/полезно/котики. ☺
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(16.08.2022 12:Aug)mord0d Написал: аа
(16.08.2022 09:Aug)Zhbert Написал: Мы вроде в чатике пару недель назад обсуждали, что вариант с ссылкой на оригинал будет норм. 

Окей, больше не буду сюда приносить свои статьи.
Не-не-не, ты не понял посыла. Я не предлагаю выкладывать полностью (всё же это твоя статья), но заинтересуй посетителя этого треда пройти по ссылке. Не обязательно скопировав больший кусок статьи, добавь сюда от себя что-нибудь, что даст понять что по ссылке интересно/полезно/котики. ☺

Так норм? Smile
Ответ
(16.08.2022 14:Aug)Zhbert Написал:
(16.08.2022 12:Aug)mord0d Написал: аа
(16.08.2022 09:Aug)Zhbert Написал: Мы вроде в чатике пару недель назад обсуждали, что вариант с ссылкой на оригинал будет норм. 

Окей, больше не буду сюда приносить свои статьи.
Не-не-не, ты не понял посыла. Я не предлагаю выкладывать полностью (всё же это твоя статья), но заинтересуй посетителя этого треда пройти по ссылке. Не обязательно скопировав больший кусок статьи, добавь сюда от себя что-нибудь, что даст понять что по ссылке интересно/полезно/котики. ☺

Так норм? Smile

Агонь! Пошёл читать (заодно узнаю почему выбран именно Go). :3
Правила форума
[Новичкам] Как правильно задавать вопросы, чтобы Вам помогли

«Буду бить аккуратно, но сильно!» © Лёлик, х/ф «Бриллиантовая рука»
Ответ
(16.08.2022 16:Aug)mord0d Написал: Агонь!

Ну тогда и следующие так же принесу Smile

(16.08.2022 16:Aug)mord0d Написал: заодно узнаю почему выбран именно Go

Та все просто — я щас больше на нем пишу, чем на Java. А произошло это, потому что у нас все на Go, и странно было бы тащить туда и Java еще.

Но, кстати, он мне больше импонирует как-то. Хотя бы тем, что собирается в один бинарник как сишка, а не требует еще и джавамашин всяких.
Ответ