선형 배열 (Linear Arrays) & 정렬(Sort), 탐색(Search)

1. 기본

L1 = list()
L2 = []

# 빠른거
L1.append(value) #리스트 끝에 value(이하 'v') 추가
L1.pop() #리스트 끝의 v 뽑기

# 느린거
L1.insert(index, v) #리스트의 해당하는 index(이하 'i')에 v 추가, 뒷 v들의 i += 1. 
L1.del(i) #리스트의 해당하는 i의 v 삭제, 뒷 v들의 i -= 1.

# 추가 다른 연산(?)
L1.index(v) #리스트에서 해당 v의 i를 반환 

2. 정렬

L1 = [3, 2, 1]
L1.sort() #L1을 [1, 2, 3]으로 정렬
L2 = sorted(L1) #L1을 정렬한 L2라는 새로운 리스트(new list)를 생성.
L1 = sorted(L1) #도 된다.

3. 탐색
선형 탐색(linear search) | 순차 탐색(sequential search) : 순서대로 탐색(처음부터 끝까지)
이진 탐색(binary search) : 이미 정렬된 리스트의 가운데 값으로 논리연산하여 반을 버리고, 남은 반의 가운데 값으로... 반복 (logN번 반복?)

L = list()

# 선형 탐색
if x in L:
	return L.index(x)
else:
	raise KeyError
    
# 이진 탐색
lower = 0
upper = len(L)-1
while lower <= upper:
	mid = (lower+upper)//2
    if L[mid] == x:
    	return mid
    elif L[mid] > x:
    	upper = mid-1
    elif L[mid] < x:
    	lower = mid+1
    return KeyError

한줄평

이때까진 쉬웠다.

좋은 웹페이지 즐겨찾기