오늘의 TIL 3줄 요약
•
버블 정렬, 선택 정렬, 삽입 정렬의 시간 복잡도는 같아도 속도는 다르다.
•
스택은 LIFO, 큐는 FIFO이다.
•
스택과 큐는 추상 자료구조(abstract data type, ADT)이다.
책에서 기억하고 싶은 내용
Bubble, Selection, Insertion Sort
•
Bubble Sort
#include <iostream>
using namespace std;
int main()
{
  int count;
  int *input;
  cout << "How many numbers would you like to type?" << endl;
  cin >> count;
  input = new int[count];
  if (input == nullptr)
    cout << "Error: Memory could not be allocated.";
  else
  {
    for (int i = 0; i < count; i++)
    {
      cout << "Input Number: ";
      cin >> input[i];
    }
    int tmp;
    for (int i = 0; i < count; i++)
    {
      for (int j = 1; j < count - i; j++)
      {
        if (input[j - 1] > input[j])
        {
          tmp = input[j - 1];
          input[j - 1] = input[j];
          input[j] = tmp;
        }
      }
    }
    cout << "Done" << endl;
    for (int i = 0; i < count; i++)
    {
      cout << *(input + i) << " ";
    }
  }
  return 0;
}
C++
복사
•
Selection Sort
#include <iostream>
using namespace std;
int main()
{
  int tmp;
  int minIndex;
  int *list;
  int length;
  cout << "How many numbers would you like to type: ";
  cin >> length;
  list = new int[length];
  for (int i = 0; i < length; i++)
  {
    cout << "Input Number: ";
    cin >> *(list + i);
  }
  for (int i = 0; i < length - 2; i++)
  {
    minIndex = i;
    for (int j = i + 1; j < length; j++)
    {
      if (list[j] < list[minIndex])
        minIndex = j;
    }
    tmp = *(list + i);
    *(list + i) = *(list + minIndex);
    *(list + minIndex) = tmp;
  }
  for (int i = 0; i < length; i++)
    cout << *(list + i) << endl;
}
C++
복사
•
Insertion Sort
#include <iostream>
using namespace std;
int main()
{
  int length;
  int *list;
  cout << "How many numbers would you like to type: ";
  cin >> length;
  list = new int[length];
  for (int i = 0; i < length; i++)
  {
    cout << "Input Number: ";
    cin >> *(list + i);
  }
  for (int i = 1; i < length; i++)
  {
    int tmp = list[i];
    int prev = i - 1;
    while ((prev >= 0) && (list[prev] > tmp))
    {
      list[prev + 1] = list[prev];
      prev--;
    }
    list[prev + 1] = tmp;
  }
  for (int i = 0; i < length; i++)
    cout << *(list + i) << endl;
}
C++
복사
책 읽은 소감
사이드 프로젝트를 1~2달 동안 2개 정도 하게 될 텐데, 그 동안애 클린코드를 읽고 나서 내가 나중에 개발자
가 됐을때도 도움이 됐으면 좋겠다. 이 챌린지가 끝나고 클린코드 챌린지도 하는데, 그때 좀 열심히
해놔야겠다.
#노개북 #개발자북클럽