Week 11: Sort
- 
Introducing: runtime analysis, big-O notation. 
- 
Sorting: Selection sort, Bubble sort 
1. Resources:
2. Selection Sort
// function: selectionSort
// input: L (int[]), the list to sort
// output: none
void selectionSort(int[] L) {
  for (int i= 0; i < L.length; i++) {
    int minIdx = i;
    for (int j = i+1; j < L.length; j++) {
      if (L[j] < L[minIdx]) {
        minIdx = j;
      }
    }
    swap(minIdx, i, L);
    printValues(L);
  }
}
// function: printValues
// input: L (int[]), the list to sort
// output: none
void printValues(int[] L) {
  for (int i = 0; i < L.length; i++) {
    int value = L[i];
    print(value + " ");
  }
  println();
}
// function: swap
// input: firstIdx (int)
// input: secondIdx (int)
// input: L (int[])
// output: none
void swap(int firstIdx, int secondIdx, int[] L) {
  int tmp = L[firstIdx];
  L[firstIdx] = L[secondIdx];
  L[secondIdx] = tmp;
}
void setup() {
   int[] testValues = {10, 4, 3, 0, 11, 8};
   printValues(testValues);
   selectionSort(testValues);
   // test code
   //swap(0, 1, testValues);
   //printValues(testValues);
}