TIL (today I learned)

2019-03-11 TIL

grin-quokka 2019. 3. 11. 22:06

코드잇 ) 프로그래밍 기초

정렬

    • 삽입 정렬 - 0번 인덱스부터 시작해서 하나씩 각 값의 자리를 찾아주는 알고리즘 ❌
    • 합병 정렬 ❌

알고리즘

    • Logarithms 로그 → 거듭제곱의 반대

    • 선형탐색 Linear Search 👌

1
2
3
4
5
6
7
8
9
10
def linear_search(element, some_list):
    for index in range(len(some_list)):
        if element == some_list[index]:
            return index
 
print(linear_search(2, [235711]))
print(linear_search(0, [235711]))
print(linear_search(5, [235711]))
print(linear_search(3, [235711]))
print(linear_search(11, [235711]))

cs

    • 이진탐색 Binary Search -반복문

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      def binary_search(element, some_list):
          start_index = 0
          end_index = len(some_list) - 1
       
          while start_index <= end_index:
              mid_index = (start_index + end_index) // 2
              if some_list[mid_index] == element:
                  return mid_index
              elif some_list[mid_index] > element:
                  end_index = mid_index
              else:
                  start_index = mid_index
          return None
       
      print(binary_search(2, [235711]))
      print(binary_search(0, [235711]))
      print(binary_search(5, [235711]))
      print(binary_search(3, [235711]))
      print(binary_search(11, [235711]))

      cs

    • 리스트에 찾는 값이 없을 때 None을 리턴해야하는데 무한루프가 돈다. 어떻게 해결할지 고민중

  • 이진탐색 -재귀 ❌