<3주차_1일> 알고리즘(1)

Nary Kim·2023년 5월 16일
0
post-thumbnail

알고리즘의 학습주제를 살펴보니 아무래도 많은 양의 데이터를 관리를 해서인지, 정렬과 검색, 추출에 대한 주제가 대부분이였다.

  • 선형검색 : 선형으로 나열되어 있는 데이터를 순차적으로 스캔하여 원하는 값을 찾는다.

  • 보초법 : 마지막 인덱스에 찾으려는 값을 추가해서 찾는 과정을 간략화한다.

  • 이진검색 : 정렬되어 있는 자료구조 에서 중앙값과의 크고 작음을 이용해서 데이터를 검색한다.

  • 순위 : 비교하려는 리스트와 같은 크기의 0세팅된 리스트를 설정하여 원하는 조건에 점수를 부여함으로써 순위를 정할 수 있다.

  • 버블정렬 : 인접하는 인덱스의 값을 순차적으로 비교하면서 조건에 맞는 숫자를 가장 끝으로 옮기는 알고리즘이다.

    	for i in range(length):
			for j in range(length - i):
    			if cns[j] > cns[j+1]:
        			cns[j], cns[j+1] = cns[j+1], cns[j]
  • 삽입정렬 : 정렬되어있는 자료배열과 비교해서 정렬위치를 찾는다.
		for i1 in range(1,len(nums)):
    		i2 = i1 -1
    		cnum = nums[i1]

    		while nums[i2] > cnum and i2 >= 0:
        		nums[i2 + 1] = nums[i2]
        		i2 -= 1

    		nums[i2+1] = cnum
    		print(nums)
  • 선택정렬 : 주어진 리스트 중에 최소값을 찾아, 그 갑을 맨 앞에 위치한 값과 교체하는 방식으로 자료를 정렬한다.
		for i in range(len(nums)-1):
			minIdx = i
    		for j in range(i+1, len(nums)):
    			if nums[minIdx] > nums[j]:
        			minIdx = j
			tempNum = nums[i]
    		nums[i] = nums[minIdx]
    		nums[minIdx] = tempNum
  • 최대값 : 주어진 리스트를 선형검색하면서 가장 큰 값을 저장한다.
  • 최소값 : 주어진 리스트를 선형검색하면서 가장 작은 값을 저장한다.
  • 최빈값
		nums = [1, 3, 7, 6, 7, 7, 7, 12, 12, 17]
		#최대값 구하기
		maxValue = 0
		for i in range(len(nums)):
			if maxValue < nums[i]:
    			maxValue = nums[i]
		#최빈값 구하기
		indexs = [0 for i in range(maxValue + 1)]
		for n in nums
			indexs[n] += 1
profile
나는 무엇이 될것인가!!

0개의 댓글