Guest User

Untitled

a guest
Mar 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. # 01. 삽입 정렬이 무엇인지 찾아보고 구현해보세요
  2. from random import choice
  3.  
  4. raw_list = list(range(0, 100+1))
  5. target = []
  6. for _ in range(100):
  7. target.append(choice(raw_list))
  8.  
  9. print(target)
  10.  
  11. def ins_sort(a):
  12. n = len(a)
  13. for i in range(1, n):
  14. key = a[i]
  15. j = i - 1
  16. while j >= 0 and a[j] > key:
  17. a[j + 1] = a[j]
  18. j -= 1
  19. a[j + 1] = key
  20.  
  21. ins_sort(target)
  22. print(target)
  23.  
  24. # 02. 퀵 정렬이 무엇인지 찾아보고 구현해보세요.
  25. from random import choice
  26.  
  27. raw = list(range(0, 100+1))
  28.  
  29. target = []
  30. for _ in range(100):
  31. target.append(choice(raw))
  32.  
  33. print(target)
  34.  
  35. def quick_sort_sub(a, start, end):
  36. if end-start <= 0:
  37. return
  38. pivot = a[end]
  39. i = start
  40. for j in range(start, end):
  41. if a[j] <= pivot:
  42. a[i], a[j] = a[j], a[i]
  43. i += 1
  44. a[i], a[end] = a[end], a[i]
  45. quick_sort_sub(a, start, i - 1)
  46. quick_sort_sub(a, i + 1, end)
  47.  
  48. def quick_sort(a):
  49. quick_sort_sub(a, 0, len(a)-1)
  50.  
  51. quick_sort(target)
  52. print(target)
  53.  
  54. # 03. fibonacci 향상
  55.  
  56. # 04. Memorization - 1
  57. def cal(n):
  58. i = 1
  59. if n == 1:
  60. return i
  61. i += 1
  62. if n % 2 == 0:
  63. return cal(n / 2)
  64. else:
  65. return cal((n * 3) + 1)
  66.  
  67. def sol(n):
  68. result = []
  69. for i in range(1, n+1):
  70. result.append(cal(i))
  71. return result
  72.  
  73. print(sol(2))
  74. print(sol(6))
  75. # 오류 발생 중...(수정 예정 입니다.)
Add Comment
Please, Sign In to add comment