Page 58 - Bkhargava_-_Grokaem_algoritmy
P. 58

Пример кода   57


        Алгоритмы сортировки очень полезны. Например, теперь вы можете отсор­
        тировать:

        D  имена в телефонной книге;

        о даты путешествий;
        D  сообщения электронной почты (от новых к старым).

        Алгоритм сортировки выбором легко объясняется, но медленно работает.
        Быстрая сортировка - эффективный алгоритм сортировки, который выпол­
        няется за время О(п log п). Но мы займемся этой темой в следующей главе!



        Пример кода

        Мы не будем приводить код сортировки музыкального списка, но напи­
        санный ниже код делает нечто очень похожее: он выполняет сортировку
        массива по возрастанию. Напишем функцию для поиска наименьшего
        элемента массива:
        def  find  Smallest(a  r  r):
          smallest  = arr[0]    С· · · ···    Дпя хранения наименьwеrо значения
          smallest_index  =  0   с""""".      Дпя хранения индекса наименьwеrо значения
          for  i  in  range(l,  len(arr)):
            if arr[i]  <  smallest:
             smallest  =  arr[i]
             smallest_index  =  i
          return  smallest_index


        Теперь на основе этой функции можно написать функцию сортировки вы­
        бором:


        def  selectionSort(arr):   С·        Сортирует массив
          newArr  = []
          for  i  in  range(len(arr)):
             smallest  =  indSmallest(arr)   С·    Находит наименьший эпемент в массиве
             newArr.append(arr.pop(smallest))      и добавnяет ero в новый массив
          return  newArr
        print  selectionSort([S,  З,  6,  2,  10])







                                                         www.trk.kg
   53   54   55   56   57   58   59   60   61   62   63