Använd vänsterpil och högerpil för att navigera

Eller Ctrl+P för att skriva ut till PDF (eller på papper)

Föreläsning 24: Algoritmer

Algoritmer

Sökning

  1. public static int FindIndex(int[] array, int target) {
  2. for (int i = 0; i < array.Length; i += 1) {
  3. if (array[i] == target) {
  4. return i;
  5. }
  6. }
  7. // Will only run if nothing is found.
  8. // In that case, use -1 to mean "not found".
  9. return -1;
  10. }

Hastighet

Högre hastighet

Binärsökning

Hastighet på binärsökning

Binärsökning i C#

  1. // Requires the array to be sorted.
  2. // Probably contains off-by-one errors.
  3. public static int BinaryFindIndex(int[] array, int target) {
  4. int first = 0;
  5. int last = array.Length - 1;
  6. int middle = last / 2;
  7. while (first != last) {
  8. if (array[middle] == target) {
  9. return middle;
  10. }
  11. else if (array[middle] > target) {
  12. last = middle;
  13. }
  14. else {
  15. first = middle;
  16. }
  17. int difference = last - first;
  18. middle = first + (difference / 2);
  19. }
  20. return -1;
  21. }

Algoritmdesign

Varför hastighet är viktigt

Big O

Sortering

Algoritmer som ni har skrivit

Metodik

Praktiska tips