{"id":2726,"date":"2016-12-22T06:00:44","date_gmt":"2016-12-22T04:00:44","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2726"},"modified":"2016-12-29T09:35:04","modified_gmt":"2016-12-29T07:35:04","slug":"ordenacion-por-una-fila","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/ordenacion-por-una-fila\/","title":{"rendered":"Ordenaci\u00f3n por una fila"},"content":{"rendered":"<p>Las matrices se pueden representar por listas de lista. Por ejemplo, la matriz<\/p>\n<pre lang=\"text\">\n   |1 2 5| \n   |3 0 7| \n   |9 1 6| \n   |6 4 2|\n<\/pre>\n<p>se puede representar por<\/p>\n<pre lang=\"text\">\n   ej :: [[Int]]\n   ej = [[1,2,5],\n         [3,0,7],\n         [9,1,6],\n         [6,4,2]]\n<\/pre>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   ordenaPorFila :: Ord a => [[a]] -> Int -> [[a]]\n<\/pre>\n<p>tal que (ordenaPorFila xss k) es la matriz obtenida ordenando xs por los elementos de la fila k. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   ordenaPorFila ej 1  ==  [[2,1,5],[0,3,7],[1,9,6],[4,6,2]]\n   ordenaPorFila ej 2  ==  [[2,5,1],[0,7,3],[1,6,9],[4,2,6]]\n   ordenaPorFila ej 3  ==  [[5,2,1],[7,0,3],[6,1,9],[2,4,6]]\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (sort, transpose)\n\nej :: [[Int]]\nej = [[1,2,5],\n      [3,0,7],\n      [9,1,6],\n      [6,4,2]]\n\n-- 1\u00aa soluci\u00f3n\n-- ===========\n\nordenaPorFila :: Ord a => [[a]] -> Int -> [[a]]\nordenaPorFila xss k =\n  transpose (ordenaPorColumna (transpose xss) k)\n\nordenaPorColumna :: Ord a => [[a]] -> Int -> [[a]]\nordenaPorColumna xss k =\n  map snd (sort [(xs!!k,xs) | xs <- xss])\n\n-- 2\u00aa soluci\u00f3n\n-- ===========\n\nordenaPorFila2 :: Ord a => [[a]] -> Int -> [[a]]\nordenaPorFila2 xss k =\n  [[x | (_,x) <- sort $ zip (xss!!k) xs ] | xs <- xss]\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Las matrices se pueden representar por listas de lista. Por ejemplo, la matriz |1 2 5| |3 0 7| |9 1 6| |6 4 2| se puede representar por ej :: [[Int]] ej = [[1,2,5], [3,0,7], [9,1,6], [6,4,2]] Definir la funci\u00f3n ordenaPorFila :: Ord a => [[a]] -> Int -> [[a]] tal que (ordenaPorFila xss&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[4],"tags":[8,10,11,16,14,68],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2726"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=2726"}],"version-history":[{"count":5,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2726\/revisions"}],"predecessor-version":[{"id":2761,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2726\/revisions\/2761"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}