{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":43568,"title":"Bubble sort","description":"Write your own bubble sort function ( \u003chttps://en.wikipedia.org/wiki/Bubble_sort\u003e) to sort all elements in x in ascending order.\r\nYou cannot cheat by using the function \"sort.m\". If your solution even contains the word \"sort\", the assertion will fail!","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 72px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 36px; transform-origin: 407px 36px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 116px 8px; transform-origin: 116px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite your own bubble sort function (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Bubble_sort\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e\u0026lt;https://en.wikipedia.org/wiki/Bubble_sort\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124.5px 8px; transform-origin: 124.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u0026gt;) to sort all elements in x in ascending order.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 362.5px 8px; transform-origin: 362.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou cannot cheat by using the function \"sort.m\". If your solution even contains the word \"sort\", the assertion will fail!\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = bubble(x)\r\n    % IMPORTANT\r\n    % this example sorts x but is not vallid as the test suite will detect \"sort\" in your solution!\r\n    % Therefore, remove all words \"sort\", even in these 2 lines!\r\n    y = sort(x);\r\nend","test_suite":"%%\r\nfiletext = fileread('bubble.m');\r\nassert(isempty(strfind(filetext, 'sort')))\r\n\r\n%%\r\nx = 15:-1:1;\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [1 2 3 4 2 3 4 3 4 4];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [11 9 10 8 8 10];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [19 3 2 17 7 23 5 13 11];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = rand(1,10);\r\nassert(isequal(bubble(x),sort(x)))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":94929,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":"2021-08-10T06:45:29.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-17T10:59:20.000Z","updated_at":"2026-04-02T10:28:17.000Z","published_at":"2016-10-17T10:59:19.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite your own bubble sort function (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Bubble_sort\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Bubble_sort\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;) to sort all elements in x in ascending order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou cannot cheat by using the function \\\"sort.m\\\". If your solution even contains the word \\\"sort\\\", the assertion will fail!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":44712,"title":"Sort Reversal","description":"There are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them. \r\n\r\nGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\r\n\r\n*THEORY:* The problem can be solved by applying a sorting algorithm such as _bubble sort_ or _insertion sort_ first to the numbers in odd positions and then to the numbers in even positions.","description_html":"\u003cp\u003eThere are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them.\u003c/p\u003e\u003cp\u003eGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\u003c/p\u003e\u003cp\u003e\u003cb\u003eTHEORY:\u003c/b\u003e The problem can be solved by applying a sorting algorithm such as \u003ci\u003ebubble sort\u003c/i\u003e or \u003ci\u003einsertion sort\u003c/i\u003e first to the numbers in odd positions and then to the numbers in even positions.\u003c/p\u003e","function_template":"function y = SortReversal(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nassert(isequal(SortReversal(1),0))\r\n\r\n%%\r\nassert(isequal(SortReversal(3),1))\r\n\r\n%%\r\nassert(isequal(SortReversal(71),1225))\r\n\r\n%%\r\nassert(isequal(SortReversal(113),3136))\r\n\r\n%%\r\nassert(isequal(SortReversal(123),3721))\r\n\r\n%%\r\nassert(isequal(SortReversal(199),9801))\r\n\r\n%%\r\nassert(isequal(SortReversal(257),16384))\r\n\r\n%%\r\nassert(isequal(SortReversal(321),25600))\r\n\r\n%%\r\nassert(isequal(SortReversal(333),27556))\r\n\r\n%%\r\nassert(isequal(SortReversal(503),63001))\r\n\r\n%%\r\nassert(isequal(SortReversal(555),76729))\r\n\r\n%%\r\nassert(isequal(SortReversal(737),135424))\r\n\r\n%%\r\nassert(isequal(SortReversal(777),150544))\r\n\r\n%%\r\nassert(isequal(SortReversal(999),249001))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":178544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2018-09-07T17:34:58.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2018-08-03T19:01:12.000Z","updated_at":"2026-03-11T11:47:32.000Z","published_at":"2018-08-03T19:48:08.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTHEORY:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e The problem can be solved by applying a sorting algorithm such as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ebubble sort\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e or\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einsertion sort\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e first to the numbers in odd positions and then to the numbers in even positions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1401,"title":"Implement a bubble sort technique and output the number of swaps required","description":"A bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page: http://en.wikipedia.org/wiki/Bubble_sort","description_html":"\u003cp\u003eA bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page: \u003ca href = \"http://en.wikipedia.org/wiki/Bubble_sort\"\u003ehttp://en.wikipedia.org/wiki/Bubble_sort\u003c/a\u003e\u003c/p\u003e","function_template":"function c = bubblesort(x)\r\n  c = 0;\r\nend","test_suite":"%%\r\nx = [5 1 4 2 8];\r\ny_correct = 4;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [7 9 17 4 19 3 17 13 20 18];\r\ny_correct = 14;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [73 72 27 56 16 12 21 12 19 1 9 52 44];\r\ny_correct = 54;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [4 15 2 5 1 5 8 6 12 13 22 7];\r\ny_correct = 18;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [48 15 16 86 89 29 56 2 59 57 2 6 27 53 91 29 52 32 4 61 67 18 99 12 37 76 71 85 91 9];\r\ny_correct = 180;\r\nassert(isequal(bubblesort(x),y_correct))","published":true,"deleted":false,"likes_count":10,"comments_count":0,"created_by":12344,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":390,"test_suite_updated_at":"2016-11-18T03:28:11.000Z","rescore_all_solutions":false,"group_id":13,"created_at":"2013-03-30T16:44:41.000Z","updated_at":"2026-04-07T13:53:43.000Z","published_at":"2013-03-30T16:44:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Bubble_sort\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Bubble_sort\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":43568,"title":"Bubble sort","description":"Write your own bubble sort function ( \u003chttps://en.wikipedia.org/wiki/Bubble_sort\u003e) to sort all elements in x in ascending order.\r\nYou cannot cheat by using the function \"sort.m\". If your solution even contains the word \"sort\", the assertion will fail!","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 72px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 36px; transform-origin: 407px 36px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 116px 8px; transform-origin: 116px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite your own bubble sort function (\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://en.wikipedia.org/wiki/Bubble_sort\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003e\u0026lt;https://en.wikipedia.org/wiki/Bubble_sort\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124.5px 8px; transform-origin: 124.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e\u0026gt;) to sort all elements in x in ascending order.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 362.5px 8px; transform-origin: 362.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou cannot cheat by using the function \"sort.m\". If your solution even contains the word \"sort\", the assertion will fail!\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function y = bubble(x)\r\n    % IMPORTANT\r\n    % this example sorts x but is not vallid as the test suite will detect \"sort\" in your solution!\r\n    % Therefore, remove all words \"sort\", even in these 2 lines!\r\n    y = sort(x);\r\nend","test_suite":"%%\r\nfiletext = fileread('bubble.m');\r\nassert(isempty(strfind(filetext, 'sort')))\r\n\r\n%%\r\nx = 15:-1:1;\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [1 2 3 4 2 3 4 3 4 4];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [11 9 10 8 8 10];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = [19 3 2 17 7 23 5 13 11];\r\nassert(isequal(bubble(x),sort(x)))\r\n\r\n%%\r\nx = rand(1,10);\r\nassert(isequal(bubble(x),sort(x)))\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":94929,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":"2021-08-10T06:45:29.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-17T10:59:20.000Z","updated_at":"2026-04-02T10:28:17.000Z","published_at":"2016-10-17T10:59:19.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite your own bubble sort function (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Bubble_sort\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Bubble_sort\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;) to sort all elements in x in ascending order.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou cannot cheat by using the function \\\"sort.m\\\". If your solution even contains the word \\\"sort\\\", the assertion will fail!\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":44712,"title":"Sort Reversal","description":"There are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them. \r\n\r\nGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\r\n\r\n*THEORY:* The problem can be solved by applying a sorting algorithm such as _bubble sort_ or _insertion sort_ first to the numbers in odd positions and then to the numbers in even positions.","description_html":"\u003cp\u003eThere are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them.\u003c/p\u003e\u003cp\u003eGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\u003c/p\u003e\u003cp\u003e\u003cb\u003eTHEORY:\u003c/b\u003e The problem can be solved by applying a sorting algorithm such as \u003ci\u003ebubble sort\u003c/i\u003e or \u003ci\u003einsertion sort\u003c/i\u003e first to the numbers in odd positions and then to the numbers in even positions.\u003c/p\u003e","function_template":"function y = SortReversal(n)\r\n  y = x;\r\nend","test_suite":"%%\r\nassert(isequal(SortReversal(1),0))\r\n\r\n%%\r\nassert(isequal(SortReversal(3),1))\r\n\r\n%%\r\nassert(isequal(SortReversal(71),1225))\r\n\r\n%%\r\nassert(isequal(SortReversal(113),3136))\r\n\r\n%%\r\nassert(isequal(SortReversal(123),3721))\r\n\r\n%%\r\nassert(isequal(SortReversal(199),9801))\r\n\r\n%%\r\nassert(isequal(SortReversal(257),16384))\r\n\r\n%%\r\nassert(isequal(SortReversal(321),25600))\r\n\r\n%%\r\nassert(isequal(SortReversal(333),27556))\r\n\r\n%%\r\nassert(isequal(SortReversal(503),63001))\r\n\r\n%%\r\nassert(isequal(SortReversal(555),76729))\r\n\r\n%%\r\nassert(isequal(SortReversal(737),135424))\r\n\r\n%%\r\nassert(isequal(SortReversal(777),150544))\r\n\r\n%%\r\nassert(isequal(SortReversal(999),249001))","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":178544,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2018-09-07T17:34:58.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2018-08-03T19:01:12.000Z","updated_at":"2026-03-11T11:47:32.000Z","published_at":"2018-08-03T19:48:08.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThere are n index cards in a row, with n distinct integers written on them (one number per card) so that the numbers are sorted in decreasing order. You are only allowed to exchange pair of cards that have exactly one card between them.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven an odd value n, what is the minimum number of exchanges required to reverse the order of arrangement?\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eTHEORY:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e The problem can be solved by applying a sorting algorithm such as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ebubble sort\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e or\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003einsertion sort\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e first to the numbers in odd positions and then to the numbers in even positions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1401,"title":"Implement a bubble sort technique and output the number of swaps required","description":"A bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page: http://en.wikipedia.org/wiki/Bubble_sort","description_html":"\u003cp\u003eA bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page: \u003ca href = \"http://en.wikipedia.org/wiki/Bubble_sort\"\u003ehttp://en.wikipedia.org/wiki/Bubble_sort\u003c/a\u003e\u003c/p\u003e","function_template":"function c = bubblesort(x)\r\n  c = 0;\r\nend","test_suite":"%%\r\nx = [5 1 4 2 8];\r\ny_correct = 4;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [7 9 17 4 19 3 17 13 20 18];\r\ny_correct = 14;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [73 72 27 56 16 12 21 12 19 1 9 52 44];\r\ny_correct = 54;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [4 15 2 5 1 5 8 6 12 13 22 7];\r\ny_correct = 18;\r\nassert(isequal(bubblesort(x),y_correct))\r\n\r\n%%\r\nx = [48 15 16 86 89 29 56 2 59 57 2 6 27 53 91 29 52 32 4 61 67 18 99 12 37 76 71 85 91 9];\r\ny_correct = 180;\r\nassert(isequal(bubblesort(x),y_correct))","published":true,"deleted":false,"likes_count":10,"comments_count":0,"created_by":12344,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":390,"test_suite_updated_at":"2016-11-18T03:28:11.000Z","rescore_all_solutions":false,"group_id":13,"created_at":"2013-03-30T16:44:41.000Z","updated_at":"2026-04-07T13:53:43.000Z","published_at":"2013-03-30T16:44:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eA bubble sort technique compares adjacent items and swaps them if they are in the wrong order. This is done recursively until all elements are in ascending order. Find the total number of swaps required to sort an input vector using a simple bubble sort technique. For more information see the wikipedia page:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Bubble_sort\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehttp://en.wikipedia.org/wiki/Bubble_sort\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"bubble sort\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"bubble sort\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"bubble sort\"","","\"","bubble sort","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f3d940edf20\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f3d940ede80\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f3d940ed5c0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f3d940ee1a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f3d940ee100\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f3d940ee060\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f3d940edfc0\u003e":"tag:\"bubble sort\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f3d940edfc0\u003e":"tag:\"bubble sort\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"bubble sort\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"bubble sort\"","","\"","bubble sort","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f3d940edf20\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f3d940ede80\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f3d940ed5c0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f3d940ee1a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f3d940ee100\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f3d940ee060\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f3d940edfc0\u003e":"tag:\"bubble sort\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f3d940edfc0\u003e":"tag:\"bubble sort\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":43568,"difficulty_rating":"easy"},{"id":44712,"difficulty_rating":"easy-medium"},{"id":1401,"difficulty_rating":"easy-medium"}]}}