1 / 63

CIS 200 Final Review

CIS 200 Final Review. New Material. Sorting. Selection Sort. Repeated scan of list for smallest/largest value Each swap with item in correct spot Big O, N-1 Passes Probes – O(N^2) Data Movements – O(N). Insertion Sort. Like cards being one at a time

Télécharger la présentation

CIS 200 Final Review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CIS 200 Final Review

  2. New Material

  3. Sorting

  4. Selection Sort • Repeated scan of list for smallest/largest value • Each swap with item in correct spot • Big O, N-1 Passes • Probes – O(N^2) • Data Movements – O(N)

  5. Insertion Sort • Like cards being one at a time • Array is split into 2 logical parts, sorted and unsorted • On each pass, next item from unsorted walks (via swaps) to correct position in sorted portion • Big O, N-1 passes Best, Worst, Ave. cases • Best – O(N) • Worst – O(N^2), T(N) =1/2N^2 – 1/2N • Avg – O(N^2), T(N) = 1/4N^2…

  6. Merge Sort Recursive • Divide list into 2 parts • Sort each part using recursion • Combine the 2 (now sorted) parts into one sorted list Big O • Best, Avg, Worst – O(N log2 N)

  7. Quick Sort • Partition is the key Two approaches • Dr. Wright’s • Text, from E18.10, p. 745 Big O • Worst case is when pivot is extreme value (min or max) • Already sorted list! • O(N^2) • Best/Avg • O(N log2 N) • Really is twice as fast as merge sort on average

  8. Data Structures

  9. Linked List

  10. Doubly Linked List

  11. Doubly Linked List

  12. Doubly Linked List

  13. Queue

  14. Queue

  15. Stack

  16. Stack

  17. Binary Search Tree • How to add items • Show a well-balanced BST – Add in this order: 9, 7, 12, 15, 2 • Show a poorly balanced BST – Add in this order: 2, 7, 9, 12, 15 • How to search • Show Inorder traversal in BST

  18. Traversals • Preorder • Inorder • Postorder http://www.cs.cmu.edu/~adamchik/15-121/lectures/Trees/trees.html

  19. Generics • Generic methods • Generic classes

  20. .NET Collections • Esp. Hash Table • Collisions • Bucket – Linked List • Load Factor

  21. Test 01 Material

  22. Memory Management • C, C++ - Have to “allocate” memory • Forgetting to “free” results in memory leaks • “Garbage Collector” Rounds up and “reclaims” memory • Variables that drop out of “scope” will be collected • Temporary values inside methods reclaimed on method exit • Generally uncontrolled by the developer

  23. LINQLanguage Integrated Query • Perform Queries Against Objects, Data

  24. LINQ Keywords • “from” - Data Source • “where” – Filters the source elements with Boolean expressions • “select” – Choosing the data type to work with • “group” – Groups results according to a desired key value • “orderby” – Sorts the query results in ascending or descending order based on a comparer • “let” – Introduce a variable for query use • Select new creates anonymous class as result set

  25. Namespaces, Scope Classes, often with common functionality, bundled together • System.Console • System.Collections.Generic • System.Linq Scope • “private” – Can only be accessed by the class, object itself • “protected” – Can only be accessed by the class, object, or any child classes, objects • “public” – Available access for all

  26. Constructors C#, .NET compiler provides a ‘free’ constructor - Default • No parameters • When a new constructor is created, ‘free’ constructor goes away • Constructors can be “connected” with “this”

  27. Interfaces • Object used for creating “interfaces”, common code • Classes “implement” an interface • All methods, properties are “abstract” in an interface • Objects that implement interface can be grouped • List<IPayable> • IPayable, IDisposable, etc

  28. Inheritance • Classes with child or children classes • Can be used to “share” common code properties • Allows for “unique” objects, while reducing code • Object -> Person -> Student • Object -> Person -> Employee

  29. Polymorphism • Override • Virtual • abstract

  30. Inheritance - Keywords • “abstract” – Methods marked MUST be overridden • Class declared with abstract prevents creation with “new” • “virtual” – Methods marked CAN be overridden • Controls “how” other classes inherit information from the class • Private, protected, public – Used to control what is inheritance

  31. Casting • Convert one type to another • Integer to String • Decimal to Integer • Byte to Integer • C#, .NET will know how to “box” and “unbox” types • Decimal -> Object -> Integer • Remember back to the Person – Student relationship • We can “cast” Person to Student both ways

  32. Will cast to student just fine Will compile, But will throw an EXCEPTION at runtime

  33. Exceptions and Exception Handling • Exceptions are… • “Exceptional” events • Unexpected events, errors during runtime • Unhandled exceptions? Stack trace and application death • Handled with try/catch/finally blocks • Try block “attempts” to run the code in question • Catch block handles the exception(s) that may occur • Finally block, optional, always executes

  34. Vs. multiple catches • What order must the catch clauses appear?

  35. Test 02 Material

  36. Windows Forms, GUI Programming • Elements • Textboxes • Tab Groups • Checkboxes • Fields • Menus • Combobox • Event Handlers • Visual Studio Designer

  37. Event Handlers • “Events” triggered by end user • Button Press • Key Press • Field Entry • …other GUI modifications or events

  38. Role of Delegates in Event Handling • Sender? • E? • Need examples

  39. Files and Streams • Files • Objects on Disks • Streams • Data structure that exposes • Read • Write • Synchronous • Asynchronous

  40. Write to File

  41. Read from File

  42. Recursion …a solution strategy that involves a simpler version of the same problem. The problem becomes simplified with each call until we reach a stopping point. Resolution level by level. Useful for • Complex equations (Fibonacci number) • Towers of Hanoi • Binary Searching • Entry point • Stopping point • Deceptively simple

  43. Define a Recursion Method What is my base case? • What is the solution to my base case? What is my intermediate case? • What is the solution to the intermediate case?

More Related