💡 버블정렬
nums=[10,2,7,21,0]
length=len(nums)-1 # 마지막 인덱스 값 : 4
for i in range (length):
for j in range(length - i) : #j 인덱스 위치 & (j+1) 인덱스 우치 비교하기 위해 j 로 미지수 지정
if nums[j]>nums[j-1]:
nums[j], nums[j-1] = nums[j-1],nums[j] # 앞 뒤 순서를 바꾸는 양식
💡 삽입정렬
nums=[5,10,2,1,0]
for i1 in range(1,len(nums)) :
i2 = i1 -1 # i1 앞자리
cNums = nums[i1]
while nums[i2] > cNum and i2 >= 0 :
nums[i2+1]= nums [i2]
i2 -= 1
nums[i2+1] = cNum
print(nums)
nums=[4,2,5,1,3]
# '선택 정렬'을 하기 위해 중첩 for문을 사용함
for i in range(lem(nums)-1) :
midIdx = i
# 최소값을 찾기 위한 for 문
for j in ragne(i+1, len(nums)):
if nums[minIdx] > nums[j]:
minIdx = j
temNum = nums[i]
nums[i] = nums[minIdx]
nums[minIdx] = temNum
print(nums)
# def sorNumber(ns, asc=True) : # ns만 넣을 값 즉, 매개변수
# 오름차순 정렬
if asc : #asc(상승)= True로 지정
for i in range(len(ns)-1) :
minIdx = i
for j in range(i+1, len(ns)) :
if ns[midIdx] > ns[j] :
minIdx=j
# 순서 바꾸기
ns[i], ns[minIdx] = ns[minIdx], ns[i]
# 내림차순 정렬
else : # 'asc=False'일 경우,
for i in range(len(ns)-1) :
minIdx = i
for j in range(i+1, len(ns)) :
if ns[midIdx] < ns[j] : # 재활용한 코드에다가 부등호만 반대로
minIdx=j
# 순서 바꾸기
ns[i], ns[minIdx] = ns[minIdx], ns[i]
얕은 복사, 깊은 복사
얕은 복사 : 변수명은 그대로 사용하나 앞에서 설정들이 바뀌면 복사된 내용도 그대로 반여됨
깊은 복사 : 초기 원본 그대로 복사
import copy
# 깊은 복사
copy.deepcopy(카피할 변수명)
- 크고 작음을 통해 수의 순서를 정하는 것