Creating Fun and Exciting Algorithms in Snap!

How can you create fun and exciting algorithms using Snap!?

Have you ever wondered how to sort a list using the selection sort algorithm or find a key in a list using binary search in Snap!? Let's explore how to make coding more engaging and enjoyable with these algorithms!

Creating Selection Sort and Binary Search Blocks in Snap!

To create a Selection Sort block in Snap!, you can follow these steps:

Selection Sort Block:

• Right-click on the Blocks palette and select New Block.

• Name the block as 'Selection Sort'.

• Implement the selection sort algorithm in the script.

Binary Search Block:

• Name the block as 'Binary Search'.

• Implement the binary search algorithm in the script.

Selection Sort Block in Snap!

To create a block in Snap! that uses the selection sort algorithm to sort a given list, right-click on the Blocks palette and select New Block. Name the block as 'Selection Sort'. Inside the block, use the following script:

when I receive [Selection Sort v]   set [list v] to (join [list v] [])   repeat (length of [list v])      set [minIndex v] to (0)      set [minValue v] to (item (minIndex) of [list v])      repeat with [i v] from (1) to (length of [list v])         if < (minValue) then            set [minIndex v] to (i)            set [minValue v] to (item (i) of [list v])      delete (join [minIndex] of [list v]) from [list v]      insert (minValue) at (1) of [sorted v]   broadcast [Sorted v]   end

This script uses a loop to sort the given list using the selection sort algorithm. It compares each item in the list with the minimum value found so far and updates the minimum value and its index accordingly. Finally, it broadcasts a message indicating that the list has been sorted.

Binary Search Block in Snap!

To create a block in Snap! that uses binary search to find a key in a list, follow the same steps as before and name the block as 'Binary Search'. Inside the block, use the following script:

when I receive [Binary Search v]   set [key v] to (0)   set [list v] to (join [list v] [])   set [low v] to (1)   set [high v] to (length of [list v])   repeat until (low) > (high)      set [mid v] to (((low) + (high))/2)      if = [key v] then         broadcast [Found v]         end      else         if < [key v] then            set [low v] to ((mid) + (1))         else            set [high v] to ((mid) - (1))   broadcast [Not Found v]   end

This script implements the binary search algorithm to find the key in the given list. It keeps track of a low and high index within the list and compares the middle item with the key. If the middle item matches the key, it broadcasts a message indicating that the key has been found. Otherwise, it adjusts the low or high index based on the comparison and repeats the process.

← The role of zeta and epsilon globins in hemoglobin gower A reflective post on shared workbooks tracking changes and updates →