1. A memory controller comprising: a managing module which is so constituted as to manage a correspondence between a virtual address space of a flash memory which is divided into a plurality of zones each including a predetermined number of blocks, and a logical address space in a host system; and a classification controlling module which determines blocks to be classified into each of said plurality of zones, by managing a correspondence between virtual addresses and physical addresses of blocks to be classified into each of said plurality of zones.