Advertisement
Guest User

Python MGE top-down merge sort

a guest
Oct 1st, 2018
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.13 KB | None | 0 0
  1. def input_cmp(a, b):
  2.     return -1 if input('%s < %s (y/n): ' %(a, b)).lower() == 'y' else 0
  3.    
  4. def merge(a, left, right, end, b):
  5.     i, j = left, right
  6.     for k in range(left, end):
  7.         if (i < right and (j >= end or input_cmp(a[i], a[j]) < 0)):
  8.             b[k] = a[i]
  9.             i += 1
  10.         else:
  11.             b[k] = a[j]
  12.             j += 1
  13.     return None
  14.    
  15. def merge_sort(a, begin, end, b):
  16.     if (end - begin < 2): return
  17.     mid = (begin + end) // 2
  18.     merge_sort(b, begin, mid, a)
  19.     merge_sort(b, mid, end, a)
  20.     merge(b, begin, mid, end, a)
  21.    
  22. def _main():
  23.     girls = ["Akaname","Alice","Alp","Alraune","Amazoness","Angel","Ant Arachne","Anubis","Apophis","Apsara","Arachne","Arch Imp","Atlach-Nacha","Automaton","Baphomet","Barometz","Basilisk","Beelzebub","Bicorn","Black Harpy","Blue Oni","Bubble Slime","Bunyip","Cait Sith","Cancer","Centaur","Charybdis","Cheshire Cat","Chimaera","Chochin-Obake","Cockatrice","Crow Tengu","Cu Sith","Cupid","Cursed Sword","Cyclops","Dark Angel","Dark Elf","Dark Mage","Dark Matter","Dark Priest","Dark Slime","Dark Valkyrie","Demon","Devil","Devil Bug","Dhampir","Doppelganger","Dormouse","Dorome","Dragon","Dragon Zombie","Dryad","Dullahan","Dwarf","Echidna","Elf","Fairy","Familiar","Flow Kelp","Gandharva","Gargoyle","Gazer","Ghost","Ghoul","Giant Ant","Giant Slug","Girtablilu","Glacies","Gnome","Goblin","Golem","Greenworm","Gremlin","Griffon","Grizzly","Gyoubu Danuki","Hakutaku","Harpy","Hellhound","High Orc","Hinezumi","Hobgoblin","Holstaur","Honey Bee","Hornet","Houri","Humpty Egg","Ice Queen","Ignis","Imp","Inari","Ittan-momen","Jabberwock","Jiangshi","Jinko","Jinn of the Jar","Jorou-Gumo","Jubjub","Kakuen","Kamaitachi","Kappa","Karakasa-Obake","Kejourou","Kesaran Pasaran","Khepri","Kikimora","Kitsune-bi","Kitsune-tsuki","Kobold","Kraken","Kunoichi","Lamia","Large Mouse","Lava Golem","Leanan Sidhe","Lesser Succubus","Lich","Lilim","Liliraune","Living Armor","Living Doll","Lizardman","Mad Hatter","Mandragora","Manticore","Mantis","March Hare","Matango","Medusa","Mermaid","Merrow","Mershark","Mimic","Mindflayer","Minotaur","Mothman","Mucus Toad","Mummy","Nekomata","Nereid","Night Gaunt","Nightmare","Nurarihyon","Nureonago","Ochimusha","Ogre","Oomukade","Orc","Otohime","Owl Mage","Papillon","Parasite Slime / Slime Carrier","Phantom","Pharaoh","Pixie","Queen Slime","Raiju","Ratatoskr","Red Oni","Red Slime","Redcap","Ren Xiongmao","Roper","Ryu","Sahuagin","Salamander","Sandworm","Satyros","Scylla","Sea Bishop","Sea Slime","Selkie","Shirohebi","Shoggoth","Siren","Skeleton","Slime","Soldier Beetle","Sphinx","Succubus","Sylph","Tentacle","Thunderbird","Titania","Tritonia","Troll","Trumpart","Umi Osho","Unagi Joro","Undine","Unicorn","Ushi-Oni","Valkyrie","Vamp Mosquito","Vampire","Wendigo","Werebat","Werecat","Wererabbit","Weresheep","Werewolf","White Horn","Wight","Will-o-the-Wisp","Witch","Wurm","Wyvern","Yeti","Youko","Yuki-Onna","Zombie"]
  24.    
  25.     girls.sort(reverse = True)
  26.     merge_sort(girls, 0, len(girls), [g for g in girls])
  27.     print()
  28.     with open('sorted monster girls.txt', 'w') as f:
  29.         for i in range(len(girls)):
  30.             f.write('%s\n' %girls[i])
  31.             print(girls[i])
  32.     return None
  33.    
  34. if __name__ == '__main__':
  35.     try:
  36.         _main()
  37.     except KeyboardInterrupt:
  38.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement