Keksike

БД 1 лаба

Feb 25th, 2021 (edited)
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.98 KB | None | 0 0
  1. def sort_min(list): #Сортировка методом минимумов
  2.   a=0
  3.   for i in range(len(list)):
  4.     lowest = i
  5.     for j in range(i + 1, len(list)):
  6.         if list[j] < list[lowest]:
  7.           lowest = j
  8.     list[i], list[lowest] = list[lowest], list[i]
  9.     a+=1
  10.   return(list,a)
  11.  
  12. def sort_max(list):  #Сортировка методом минимумов
  13.   a=0
  14.   for i in range(len(list)):
  15.     biggest = i
  16.     for j in range(i + 1, len(list)):
  17.         if list[j] > list[biggest]:
  18.             biggest = j
  19.             a+=1
  20.     list[i], list[biggest] = list[biggest], list[i]
  21.   return(list,a)
  22.  
  23. def puzirek(list):  #Сортировка пузырьком
  24.   a=0
  25.   for i in range(len(list)-1):
  26.     for j in range(len(list)-i-1):
  27.         if list[j] > list[j+1]:
  28.             list[j], list[j+1] = list[j+1], list[j]
  29.             a+=1
  30.   return(list,a)
  31.  
  32. def vstavka(list):  #Сортировка методов вставок
  33.   a=0
  34.   for i in range(len(list)):
  35.     j = i-1
  36.     key = list[i]
  37.     while list[j] > key and j >= 0:
  38.       list[j+1] = list[j]
  39.       j -= 1
  40.       a += 1
  41.     list[j+1] = key
  42.   return(list,a)
  43.  
  44. def swap(list):  #функция reverse, но ручками(
  45.   n=1
  46.   m=len(list)//2
  47.   for i in range(m):
  48.     list[i],list[i-n]=list[i-n],list[i]
  49.     n+=2
  50.   return(list)
  51.  
  52. list = []
  53. print("Сколько будет элементов в списке?") #Число элементов списка
  54. n=int(input())
  55.  
  56. for i in range(n):  #Заполнение списка
  57.   print("Введите новый элемент списка")
  58.   list.append(int(input()))
  59. print("Все возможные сортировки на выбор.Чтобы выбрать нужную, введите ее номер:\n1.Метод минимумов\n2.Метод максимумов\n3.Метод пузырком\n4.Метод вставок")
  60.  
  61. while True:  #Проверка на ввод верного числа
  62.   try:
  63.       metod = int(input('Введите число от 1 до 4: '))
  64.       if metod == 1 or metod == 2 or metod == 3 or metod == 4:
  65.           break
  66.       else:
  67.           print('Неверное число')
  68.   except :
  69.       print("Ошибка - это не число");
  70.  
  71. print("Ваш начальный список",list)
  72. if metod==1:
  73.   list_sort,a_sort=sort_min(list)
  74.   print("Ваш отсортированный список",list_sort,"\nКоличество перестановок",a_sort)  
  75. elif metod==2:
  76.   list_sort,a_sort=sort_max(list)
  77.   print("Ваш отсортированный список",swap(list_sort),"\nКоличество перестановок",a_sort)
  78. elif metod==3:
  79.   list_sort,a_sort=puzirek(list)
  80.   print("Ваш отсортированный список",list_sort,"\nКоличество перестановок",a_sort)  
  81. else:
  82.   list_sort,a_sort=vstavka(list)
  83.   print("Ваш отсортированный список",list_sort,"\nКоличество перестановок",a_sort)
Add Comment
Please, Sign In to add comment