Advertisement
Guest User

Python MGE bottom-up merge sort

a guest
Oct 1st, 2018
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.24 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 copy_array(a, b, n):
  5.     for i in range(n):
  6.         a[i] = b[i]
  7.     return None
  8.    
  9. def merge(a, left, right, end, b):
  10.     i, j = left, right
  11.     for k in range(left, end):
  12.         if (i < right and (j >= end or input_cmp(a[i], a[j]) < 0)):
  13.             b[k] = a[i]
  14.             i += 1
  15.         else:
  16.             b[k] = a[j]
  17.             j += 1
  18.     return None
  19.    
  20. def merge_sort(a, b, n):
  21.     width = 1
  22.     while width < n:
  23.         i = 0
  24.         while i < n:
  25.             merge(a, i, min(i+width, n), min(i+2*width, n), b)
  26.             i += 2*width
  27.         copy_array(a, b, n)
  28.         width = 2*width
  29.     return None
  30.    
  31. def _main():
  32.     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"]
  33.    
  34.     girls.sort(reverse = True)
  35.     merge_sort(girls, ['' for _ in range(len(girls))], len(girls))
  36.     print()
  37.     with open('sorted monster girls.txt', 'w') as f:
  38.         for i in range(len(girls)):
  39.             f.write('%s\n' %girls[i])
  40.             print(girls[i])
  41.     return None
  42.    
  43. if __name__ == '__main__':
  44.     try:
  45.         _main()
  46.     except KeyboardInterrupt:
  47.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement