После выполнения шага 1 на столе лежит яблоко, которое достали из корзины первым, а вторая корзина пуста. После каждого выполнения шага 2 большее яблоко перемещается в корзину, а меньшее остается на столе. В результате на столе окажется самое маленькое яблоко.
При обосновании корректности циклических алгоритмов полезно использовать понятие инварианта цикла. В случае приведенного алгоритма инвариантом цикла является такое условие «лежащее на столе яблоко — самое маленькое из всех взятых до сих пор». В начале алгоритма условие очевидно выполняется (любое яблоко удовлетворяет этому условию). Условие остается истинным на каждом шаге в соответствии с приведенными правилами. Таким образом, в конце алгоритма, когда все яблоки взяты, получим самое маленькое яблоко из всех.
2. 8бит/4бита = уменьшится в 2 раза