This assignment consists of various programming problems related to algorithms and data structures. The main topics covered are searching arrays, string matching, sorting, and cycle detection. The first problem involves two approaches for searching an array: linear search and binary search after sorting the array. The worst-case running times are calculated for both procedures under different conditions. The second problem focuses on a function that determines if a substring is present in a target string, with a time complexity analysis for restricted and unrestricted cases. The third problem deals with the detection of k largest items in an integer array using two methods: sorting and heap extraction. The worst-case running times are calculated for both procedures. Finally, there are problems on implementing cycle detection algorithms based on singly linked lists and solving the 0-1 knapsack problem using a bottom-up dynamic programming approach.