If you have to keep the data this way, maybe can parse the hourse_no, then order by different parts.
SELECT
CAST(SUBSTRING(hourse_no,1,CHARINDEX('-',hourse_no)-1) AS INT),
CAST(SUBSTRING(hourse_no,CHARINDEX('-',hourse_no)+1,2) AS INT),
...
FROM #temp
ORDER BY
CAST(SUBSTRING(hourse_no,1,CHARINDEX('-',hourse_no)-1) AS INT),
CAST(SUBSTRING(hourse_no,CHARINDEX('-',hourse_no)+1,2) AS INT),
...