• Home
  • University of the People
  • Data Structures (proctored course) CS 3303
  • Searching and Indexing Techniques in Data Structures

Searching and Indexing Techniques in Data Structures

Learning Journal Unit 8 As this week marks the end of the course for assignments, here is my journal entry reflecting on how I completed all tasks during the week's activity. As usual, the week went well, and there was much learned. Regarding the lesson activity, my first approach was to read the learning guide and then move on to the reading assignment. This week's main topic was "Searching and indexing techniques and algorithms." We also covered "searching unsorted and sorted arrays, hashing, linear indexing, ISAM, and B-Trees." According to Shaffer (2011), "Organizing and retrieving information are at the heart of most computer applications, and searching is the most frequently performed computing task. Search can be viewed abstractly as a process to determine if an element with a particular value is a member of a particular set." (p.317). It's also used to find a record of specific data collection with records within the collections whose key values meet some criterion, like falling within a range of values. A linear index is a sequential organized index file of pointer pairs in which keys are sorted in proper order with those pointers being either (1) point to the position of all records on disk, (2) point to the position of the primary key in the primary index, or (3) as the value of the primary key. "Depending on its size, a linear index might be stored in main memory or disk" (Shaffer, 2011). A linear index has a few advantages; for instance, it provides convenient access to variable- length database records since each entry file contains a fixed-length key field and a fixed-length pointer at the beginning of the data record. ISAM, also known as the "Indexed Sequential Access Method," is a file management system based on a modified form of the linear index. In computing, ISAM is one of the methods used for creating, maintaining, and manipulating files of a dataset for records to be sequentially or randomly retrieved by one or more keys, depending on the data size and length. In Computer Science, a B-tree is a self-balancing tree that manages and maintains data sorting and allows searches, insertions, sequential access, and deletions in logarithmic time. B- trees also generalize binary search trees, allowing for nodes with more than two children. In short, "B-trees methods are used to effectively address some of the major problems encountered when implementing disk-based search trees." (Shaffer, 2011, p.375). Going back to the activity, after the readings, the next task I completed was the self-quiz and then the discussion forum assignment. As usual, I got a complete score on the self-quiz. We were asked to discuss Zipf distribution/law for this week's forum, and the class was interactive and fun. My last task this week was the learning journal. Regarding my reactions and feedback, I kept focused and positive during the activity, allowing me to finish all assignments on time. I got feedback on my post in the forum and interacted with my peers by commenting