I need to show different components in different templates. How can i do this ? For menu using the template manager we can assign templates. Please help.
You create content pages with menu items. Each menu item refers and loads content of its specific component that is part of, alongside with its specific view/layout.
Since you already know that you can assign different templates for each menu, I think you already have the answer you are looking for.
Simply create the menu items for the component you want, and assign the template you want for it. You are done.
Your comment/concern: "but i don't want every component to be displayed as menu. Some have the links in the homepage which redirects to some components"
Menu items are essentials in Joomla eco-system. They can control many parameters and hold much information about the display of your content, plus the modules that you want to display in each page.
If you don't assign a menu item then most likely all of your components will be displayed under the home menu item, which in many cases is not desirable.
You have to create a hidden menu and setup menu items for your components there. A hidden menu is a menu that is not attached to a menu-module, therefore is not visible in the front-end of your website, but it will be still there and working.
You can then assign your new menu-items to the templates you want.