[{"data":1,"prerenderedAt":2535},["ShallowReactive",2],{"doc-\u002Fexamples\u002Fpython-sorting-algorithm-example-bubble-sort":3},{"id":4,"title":5,"body":6,"description":2528,"extension":2529,"meta":2530,"navigation":117,"path":2531,"seo":2532,"stem":2533,"__hash__":2534},"content\u002Fexamples\u002Fpython-sorting-algorithm-example-bubble-sort.md","Python Sorting Algorithm Example (Bubble Sort)",{"type":7,"value":8,"toc":2497},"minimark",[9,13,17,20,35,381,387,418,423,426,442,453,457,460,463,492,495,524,529,532,572,578,582,585,611,617,621,624,652,656,659,862,866,871,888,891,895,915,918,921,1016,1019,1083,1087,1107,1110,1114,1135,1138,1142,1175,1178,1190,1197,1201,1278,1281,1284,1287,1336,1339,1343,1346,1360,1363,1366,1379,1382,1402,1405,1418,1422,1425,1721,1725,1789,1793,1799,2032,2036,2064,2067,2071,2074,2077,2088,2091,2114,2118,2121,2125,2131,2134,2268,2275,2282,2286,2289,2292,2340,2344,2347,2365,2368,2372,2375,2406,2413,2417,2421,2424,2431,2437,2441,2444,2452,2458,2462,2493],[10,11,5],"h1",{"id":12},"python-sorting-algorithm-example-bubble-sort",[14,15,16],"p",{},"Bubble sort is a simple sorting algorithm that is often used for learning.",[14,18,19],{},"In this example, you will see how bubble sort works in Python with a small step-by-step program. The goal is to understand the algorithm, not to use it as the main way to sort data in real projects.",[21,22,23],"blockquote",{},[14,24,25,26,34],{},"Use this as a learning example. In normal Python code, ",[27,28,30],"a",{"href":29},"\u002Freference\u002Fpython-sorted-function-explained\u002F",[31,32,33],"code",{},"sorted()"," is usually the better choice.",[36,37,42],"pre",{"className":38,"code":39,"language":40,"meta":41,"style":41},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","def bubble_sort(numbers):\n    items = numbers.copy()\n    n = len(items)\n\n    for i in range(n):\n        swapped = False\n        for j in range(0, n - i - 1):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n                swapped = True\n        if not swapped:\n            break\n\n    return items\n\nvalues = [5, 2, 9, 1, 3]\nprint(bubble_sort(values))\n","python","",[31,43,44,68,92,112,119,142,154,191,227,276,287,302,308,313,322,327,362],{"__ignoreMap":41},[45,46,49,53,57,61,65],"span",{"class":47,"line":48},"line",1,[45,50,52],{"class":51},"sbsja","def",[45,54,56],{"class":55},"sGLFI"," bubble_sort",[45,58,60],{"class":59},"sP7_E","(",[45,62,64],{"class":63},"sFwrP","numbers",[45,66,67],{"class":59},"):\n",[45,69,71,75,79,82,85,89],{"class":47,"line":70},2,[45,72,74],{"class":73},"su5hD","    items ",[45,76,78],{"class":77},"smGrS","=",[45,80,81],{"class":73}," numbers",[45,83,84],{"class":59},".",[45,86,88],{"class":87},"slqww","copy",[45,90,91],{"class":59},"()\n",[45,93,95,98,100,104,106,109],{"class":47,"line":94},3,[45,96,97],{"class":73},"    n ",[45,99,78],{"class":77},[45,101,103],{"class":102},"sptTA"," len",[45,105,60],{"class":59},[45,107,108],{"class":87},"items",[45,110,111],{"class":59},")\n",[45,113,115],{"class":47,"line":114},4,[45,116,118],{"emptyLinePlaceholder":117},true,"\n",[45,120,122,126,129,132,135,137,140],{"class":47,"line":121},5,[45,123,125],{"class":124},"sVHd0","    for",[45,127,128],{"class":73}," i ",[45,130,131],{"class":124},"in",[45,133,134],{"class":102}," range",[45,136,60],{"class":59},[45,138,139],{"class":87},"n",[45,141,67],{"class":59},[45,143,145,148,150],{"class":47,"line":144},6,[45,146,147],{"class":73},"        swapped ",[45,149,78],{"class":77},[45,151,153],{"class":152},"s39Yj"," False\n",[45,155,157,160,163,165,167,169,173,176,179,182,184,186,189],{"class":47,"line":156},7,[45,158,159],{"class":124},"        for",[45,161,162],{"class":73}," j ",[45,164,131],{"class":124},[45,166,134],{"class":102},[45,168,60],{"class":59},[45,170,172],{"class":171},"srdBf","0",[45,174,175],{"class":59},",",[45,177,178],{"class":87}," n ",[45,180,181],{"class":77},"-",[45,183,128],{"class":87},[45,185,181],{"class":77},[45,187,188],{"class":171}," 1",[45,190,67],{"class":59},[45,192,194,197,200,203,206,209,212,214,216,219,222,224],{"class":47,"line":193},8,[45,195,196],{"class":124},"            if",[45,198,199],{"class":73}," items",[45,201,202],{"class":59},"[",[45,204,205],{"class":73},"j",[45,207,208],{"class":59},"]",[45,210,211],{"class":77}," >",[45,213,199],{"class":73},[45,215,202],{"class":59},[45,217,218],{"class":73},"j ",[45,220,221],{"class":77},"+",[45,223,188],{"class":171},[45,225,226],{"class":59},"]:\n",[45,228,230,233,235,237,240,242,244,246,248,250,252,255,257,259,261,263,265,267,269,271,273],{"class":47,"line":229},9,[45,231,232],{"class":73},"                items",[45,234,202],{"class":59},[45,236,205],{"class":73},[45,238,239],{"class":59},"],",[45,241,199],{"class":73},[45,243,202],{"class":59},[45,245,218],{"class":73},[45,247,221],{"class":77},[45,249,188],{"class":171},[45,251,208],{"class":59},[45,253,254],{"class":77}," =",[45,256,199],{"class":73},[45,258,202],{"class":59},[45,260,218],{"class":73},[45,262,221],{"class":77},[45,264,188],{"class":171},[45,266,239],{"class":59},[45,268,199],{"class":73},[45,270,202],{"class":59},[45,272,205],{"class":73},[45,274,275],{"class":59},"]\n",[45,277,279,282,284],{"class":47,"line":278},10,[45,280,281],{"class":73},"                swapped ",[45,283,78],{"class":77},[45,285,286],{"class":152}," True\n",[45,288,290,293,296,299],{"class":47,"line":289},11,[45,291,292],{"class":124},"        if",[45,294,295],{"class":77}," not",[45,297,298],{"class":73}," swapped",[45,300,301],{"class":59},":\n",[45,303,305],{"class":47,"line":304},12,[45,306,307],{"class":124},"            break\n",[45,309,311],{"class":47,"line":310},13,[45,312,118],{"emptyLinePlaceholder":117},[45,314,316,319],{"class":47,"line":315},14,[45,317,318],{"class":124},"    return",[45,320,321],{"class":73}," items\n",[45,323,325],{"class":47,"line":324},15,[45,326,118],{"emptyLinePlaceholder":117},[45,328,330,333,335,338,341,343,346,348,351,353,355,357,360],{"class":47,"line":329},16,[45,331,332],{"class":73},"values ",[45,334,78],{"class":77},[45,336,337],{"class":59}," [",[45,339,340],{"class":171},"5",[45,342,175],{"class":59},[45,344,345],{"class":171}," 2",[45,347,175],{"class":59},[45,349,350],{"class":171}," 9",[45,352,175],{"class":59},[45,354,188],{"class":171},[45,356,175],{"class":59},[45,358,359],{"class":171}," 3",[45,361,275],{"class":59},[45,363,365,368,370,373,375,378],{"class":47,"line":364},17,[45,366,367],{"class":102},"print",[45,369,60],{"class":59},[45,371,372],{"class":87},"bubble_sort",[45,374,60],{"class":59},[45,376,377],{"class":87},"values",[45,379,380],{"class":59},"))\n",[14,382,383],{},[384,385,386],"strong",{},"Output:",[36,388,390],{"className":38,"code":389,"language":40,"meta":41,"style":41},"[1, 2, 3, 5, 9]\n",[31,391,392],{"__ignoreMap":41},[45,393,394,396,399,401,403,405,407,409,412,414,416],{"class":47,"line":48},[45,395,202],{"class":59},[45,397,398],{"class":171},"1",[45,400,175],{"class":59},[45,402,345],{"class":171},[45,404,175],{"class":59},[45,406,359],{"class":171},[45,408,175],{"class":59},[45,410,411],{"class":171}," 5",[45,413,175],{"class":59},[45,415,350],{"class":171},[45,417,275],{"class":59},[419,420,422],"h2",{"id":421},"what-this-example-teaches","What this example teaches",[14,424,425],{},"This example helps you understand several important Python ideas:",[427,428,429,433,436,439],"ul",{},[430,431,432],"li",{},"Bubble sort compares nearby items and swaps them when they are in the wrong order.",[430,434,435],{},"After each full pass, the largest remaining value moves toward the end.",[430,437,438],{},"It gives you practice with loops, comparisons, and swapping values.",[430,440,441],{},"It is useful for learning, but not for most real programs.",[14,443,444,445,448,449,84],{},"If ",[31,446,447],{},"for"," loops still feel new, see ",[27,450,452],{"href":451},"\u002Flearn\u002Fpython-for-loops-explained\u002F","Python for loops explained",[419,454,456],{"id":455},"how-bubble-sort-works-step-by-step","How bubble sort works step by step",[14,458,459],{},"Bubble sort works by repeatedly moving through the list and comparing neighboring values.",[14,461,462],{},"Here is the basic idea:",[427,464,465,468,483,486,489],{},[430,466,467],{},"Start with a list of numbers.",[430,469,470,471,473,474,476,477,473,479,482],{},"Compare item ",[31,472,172],{}," with item ",[31,475,398],{},", then item ",[31,478,398],{},[31,480,481],{},"2",", and so on.",[430,484,485],{},"If the left item is bigger than the right item, swap them.",[430,487,488],{},"Repeat this process until the list is sorted.",[430,490,491],{},"After each outer loop pass, one more largest value ends up in the correct position.",[14,493,494],{},"Let’s use this list:",[36,496,498],{"className":38,"code":497,"language":40,"meta":41,"style":41},"[5, 2, 9, 1, 3]\n",[31,499,500],{"__ignoreMap":41},[45,501,502,504,506,508,510,512,514,516,518,520,522],{"class":47,"line":48},[45,503,202],{"class":59},[45,505,340],{"class":171},[45,507,175],{"class":59},[45,509,345],{"class":171},[45,511,175],{"class":59},[45,513,350],{"class":171},[45,515,175],{"class":59},[45,517,188],{"class":171},[45,519,175],{"class":59},[45,521,359],{"class":171},[45,523,275],{"class":59},[525,526,528],"h3",{"id":527},"first-pass","First pass",[14,530,531],{},"Compare nearby values from left to right:",[427,533,534,545,553,562],{},[430,535,536,538,539,541,542],{},[31,537,340],{}," and ",[31,540,481],{}," → swap → ",[31,543,544],{},"[2, 5, 9, 1, 3]",[430,546,547,538,549,552],{},[31,548,340],{},[31,550,551],{},"9"," → no swap",[430,554,555,538,557,541,559],{},[31,556,551],{},[31,558,398],{},[31,560,561],{},"[2, 5, 1, 9, 3]",[430,563,564,538,566,541,569],{},[31,565,551],{},[31,567,568],{},"3",[31,570,571],{},"[2, 5, 1, 3, 9]",[14,573,574,575,577],{},"Now the largest value, ",[31,576,551],{},", has moved to the end.",[525,579,581],{"id":580},"second-pass","Second pass",[14,583,584],{},"Start again, but stop one item earlier because the last item is already in the right place:",[427,586,587,593,602],{},[430,588,589,538,591,552],{},[31,590,481],{},[31,592,340],{},[430,594,595,538,597,541,599],{},[31,596,340],{},[31,598,398],{},[31,600,601],{},"[2, 1, 5, 3, 9]",[430,603,604,538,606,541,608],{},[31,605,340],{},[31,607,568],{},[31,609,610],{},"[2, 1, 3, 5, 9]",[14,612,613,614,616],{},"Now ",[31,615,340],{}," is also in the correct position.",[525,618,620],{"id":619},"keep-repeating","Keep repeating",[14,622,623],{},"More passes continue until the list becomes:",[36,625,626],{"className":38,"code":389,"language":40,"meta":41,"style":41},[31,627,628],{"__ignoreMap":41},[45,629,630,632,634,636,638,640,642,644,646,648,650],{"class":47,"line":48},[45,631,202],{"class":59},[45,633,398],{"class":171},[45,635,175],{"class":59},[45,637,345],{"class":171},[45,639,175],{"class":59},[45,641,359],{"class":171},[45,643,175],{"class":59},[45,645,411],{"class":171},[45,647,175],{"class":59},[45,649,350],{"class":171},[45,651,275],{"class":59},[419,653,655],{"id":654},"build-the-python-bubble-sort-function","Build the Python bubble sort function",[14,657,658],{},"Here is the full function again:",[36,660,662],{"className":38,"code":661,"language":40,"meta":41,"style":41},"def bubble_sort(numbers):\n    items = numbers.copy()\n    n = len(items)\n\n    for i in range(n):\n        swapped = False\n        for j in range(0, n - i - 1):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n                swapped = True\n        if not swapped:\n            break\n\n    return items\n",[31,663,664,676,690,704,708,724,732,760,786,830,838,848,852,856],{"__ignoreMap":41},[45,665,666,668,670,672,674],{"class":47,"line":48},[45,667,52],{"class":51},[45,669,56],{"class":55},[45,671,60],{"class":59},[45,673,64],{"class":63},[45,675,67],{"class":59},[45,677,678,680,682,684,686,688],{"class":47,"line":70},[45,679,74],{"class":73},[45,681,78],{"class":77},[45,683,81],{"class":73},[45,685,84],{"class":59},[45,687,88],{"class":87},[45,689,91],{"class":59},[45,691,692,694,696,698,700,702],{"class":47,"line":94},[45,693,97],{"class":73},[45,695,78],{"class":77},[45,697,103],{"class":102},[45,699,60],{"class":59},[45,701,108],{"class":87},[45,703,111],{"class":59},[45,705,706],{"class":47,"line":114},[45,707,118],{"emptyLinePlaceholder":117},[45,709,710,712,714,716,718,720,722],{"class":47,"line":121},[45,711,125],{"class":124},[45,713,128],{"class":73},[45,715,131],{"class":124},[45,717,134],{"class":102},[45,719,60],{"class":59},[45,721,139],{"class":87},[45,723,67],{"class":59},[45,725,726,728,730],{"class":47,"line":144},[45,727,147],{"class":73},[45,729,78],{"class":77},[45,731,153],{"class":152},[45,733,734,736,738,740,742,744,746,748,750,752,754,756,758],{"class":47,"line":156},[45,735,159],{"class":124},[45,737,162],{"class":73},[45,739,131],{"class":124},[45,741,134],{"class":102},[45,743,60],{"class":59},[45,745,172],{"class":171},[45,747,175],{"class":59},[45,749,178],{"class":87},[45,751,181],{"class":77},[45,753,128],{"class":87},[45,755,181],{"class":77},[45,757,188],{"class":171},[45,759,67],{"class":59},[45,761,762,764,766,768,770,772,774,776,778,780,782,784],{"class":47,"line":193},[45,763,196],{"class":124},[45,765,199],{"class":73},[45,767,202],{"class":59},[45,769,205],{"class":73},[45,771,208],{"class":59},[45,773,211],{"class":77},[45,775,199],{"class":73},[45,777,202],{"class":59},[45,779,218],{"class":73},[45,781,221],{"class":77},[45,783,188],{"class":171},[45,785,226],{"class":59},[45,787,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828],{"class":47,"line":229},[45,789,232],{"class":73},[45,791,202],{"class":59},[45,793,205],{"class":73},[45,795,239],{"class":59},[45,797,199],{"class":73},[45,799,202],{"class":59},[45,801,218],{"class":73},[45,803,221],{"class":77},[45,805,188],{"class":171},[45,807,208],{"class":59},[45,809,254],{"class":77},[45,811,199],{"class":73},[45,813,202],{"class":59},[45,815,218],{"class":73},[45,817,221],{"class":77},[45,819,188],{"class":171},[45,821,239],{"class":59},[45,823,199],{"class":73},[45,825,202],{"class":59},[45,827,205],{"class":73},[45,829,275],{"class":59},[45,831,832,834,836],{"class":47,"line":278},[45,833,281],{"class":73},[45,835,78],{"class":77},[45,837,286],{"class":152},[45,839,840,842,844,846],{"class":47,"line":289},[45,841,292],{"class":124},[45,843,295],{"class":77},[45,845,298],{"class":73},[45,847,301],{"class":59},[45,849,850],{"class":47,"line":304},[45,851,307],{"class":124},[45,853,854],{"class":47,"line":310},[45,855,118],{"emptyLinePlaceholder":117},[45,857,858,860],{"class":47,"line":315},[45,859,318],{"class":124},[45,861,321],{"class":73},[525,863,865],{"id":864},"what-each-part-does","What each part does",[867,868,870],"h4",{"id":869},"_1-create-a-reusable-function","1. Create a reusable function",[36,872,874],{"className":38,"code":873,"language":40,"meta":41,"style":41},"def bubble_sort(numbers):\n",[31,875,876],{"__ignoreMap":41},[45,877,878,880,882,884,886],{"class":47,"line":48},[45,879,52],{"class":51},[45,881,56],{"class":55},[45,883,60],{"class":59},[45,885,64],{"class":63},[45,887,67],{"class":59},[14,889,890],{},"This puts the sorting logic inside a function so you can use it with different lists.",[867,892,894],{"id":893},"_2-copy-the-input-list","2. Copy the input list",[36,896,898],{"className":38,"code":897,"language":40,"meta":41,"style":41},"items = numbers.copy()\n",[31,899,900],{"__ignoreMap":41},[45,901,902,905,907,909,911,913],{"class":47,"line":48},[45,903,904],{"class":73},"items ",[45,906,78],{"class":77},[45,908,81],{"class":73},[45,910,84],{"class":59},[45,912,88],{"class":87},[45,914,91],{"class":59},[14,916,917],{},"This creates a copy so the original list is not changed.",[14,919,920],{},"That means this code:",[36,922,924],{"className":38,"code":923,"language":40,"meta":41,"style":41},"values = [5, 2, 9, 1, 3]\nresult = bubble_sort(values)\n\nprint(\"original:\", values)\nprint(\"sorted:\", result)\n",[31,925,926,954,969,973,996],{"__ignoreMap":41},[45,927,928,930,932,934,936,938,940,942,944,946,948,950,952],{"class":47,"line":48},[45,929,332],{"class":73},[45,931,78],{"class":77},[45,933,337],{"class":59},[45,935,340],{"class":171},[45,937,175],{"class":59},[45,939,345],{"class":171},[45,941,175],{"class":59},[45,943,350],{"class":171},[45,945,175],{"class":59},[45,947,188],{"class":171},[45,949,175],{"class":59},[45,951,359],{"class":171},[45,953,275],{"class":59},[45,955,956,959,961,963,965,967],{"class":47,"line":70},[45,957,958],{"class":73},"result ",[45,960,78],{"class":77},[45,962,56],{"class":87},[45,964,60],{"class":59},[45,966,377],{"class":87},[45,968,111],{"class":59},[45,970,971],{"class":47,"line":94},[45,972,118],{"emptyLinePlaceholder":117},[45,974,975,977,979,983,987,989,991,994],{"class":47,"line":114},[45,976,367],{"class":102},[45,978,60],{"class":59},[45,980,982],{"class":981},"sjJ54","\"",[45,984,986],{"class":985},"s_sjI","original:",[45,988,982],{"class":981},[45,990,175],{"class":59},[45,992,993],{"class":87}," values",[45,995,111],{"class":59},[45,997,998,1000,1002,1004,1007,1009,1011,1014],{"class":47,"line":121},[45,999,367],{"class":102},[45,1001,60],{"class":59},[45,1003,982],{"class":981},[45,1005,1006],{"class":985},"sorted:",[45,1008,982],{"class":981},[45,1010,175],{"class":59},[45,1012,1013],{"class":87}," result",[45,1015,111],{"class":59},[14,1017,1018],{},"produces:",[36,1020,1022],{"className":38,"code":1021,"language":40,"meta":41,"style":41},"original: [5, 2, 9, 1, 3]\nsorted: [1, 2, 3, 5, 9]\n",[31,1023,1024,1054],{"__ignoreMap":41},[45,1025,1026,1029,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052],{"class":47,"line":48},[45,1027,1028],{"class":73},"original",[45,1030,1031],{"class":59},":",[45,1033,337],{"class":59},[45,1035,340],{"class":171},[45,1037,175],{"class":59},[45,1039,345],{"class":171},[45,1041,175],{"class":59},[45,1043,350],{"class":171},[45,1045,175],{"class":59},[45,1047,188],{"class":171},[45,1049,175],{"class":59},[45,1051,359],{"class":171},[45,1053,275],{"class":59},[45,1055,1056,1059,1061,1063,1065,1067,1069,1071,1073,1075,1077,1079,1081],{"class":47,"line":70},[45,1057,1058],{"class":102},"sorted",[45,1060,1031],{"class":59},[45,1062,337],{"class":59},[45,1064,398],{"class":171},[45,1066,175],{"class":59},[45,1068,345],{"class":171},[45,1070,175],{"class":59},[45,1072,359],{"class":171},[45,1074,175],{"class":59},[45,1076,411],{"class":171},[45,1078,175],{"class":59},[45,1080,350],{"class":171},[45,1082,275],{"class":59},[867,1084,1086],{"id":1085},"_3-get-the-list-length","3. Get the list length",[36,1088,1090],{"className":38,"code":1089,"language":40,"meta":41,"style":41},"n = len(items)\n",[31,1091,1092],{"__ignoreMap":41},[45,1093,1094,1097,1099,1101,1103,1105],{"class":47,"line":48},[45,1095,1096],{"class":73},"n ",[45,1098,78],{"class":77},[45,1100,103],{"class":102},[45,1102,60],{"class":59},[45,1104,108],{"class":87},[45,1106,111],{"class":59},[14,1108,1109],{},"We store the length because we use it several times in the loops.",[867,1111,1113],{"id":1112},"_4-use-an-outer-loop-for-repeated-passes","4. Use an outer loop for repeated passes",[36,1115,1117],{"className":38,"code":1116,"language":40,"meta":41,"style":41},"for i in range(n):\n",[31,1118,1119],{"__ignoreMap":41},[45,1120,1121,1123,1125,1127,1129,1131,1133],{"class":47,"line":48},[45,1122,447],{"class":124},[45,1124,128],{"class":73},[45,1126,131],{"class":124},[45,1128,134],{"class":102},[45,1130,60],{"class":59},[45,1132,139],{"class":87},[45,1134,67],{"class":59},[14,1136,1137],{},"Each pass moves one more large value into the correct position.",[867,1139,1141],{"id":1140},"_5-use-an-inner-loop-for-adjacent-comparisons","5. Use an inner loop for adjacent comparisons",[36,1143,1145],{"className":38,"code":1144,"language":40,"meta":41,"style":41},"for j in range(0, n - i - 1):\n",[31,1146,1147],{"__ignoreMap":41},[45,1148,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173],{"class":47,"line":48},[45,1150,447],{"class":124},[45,1152,162],{"class":73},[45,1154,131],{"class":124},[45,1156,134],{"class":102},[45,1158,60],{"class":59},[45,1160,172],{"class":171},[45,1162,175],{"class":59},[45,1164,178],{"class":87},[45,1166,181],{"class":77},[45,1168,128],{"class":87},[45,1170,181],{"class":77},[45,1172,188],{"class":171},[45,1174,67],{"class":59},[14,1176,1177],{},"This loop compares neighboring items:",[427,1179,1180,1185],{},[430,1181,1182],{},[31,1183,1184],{},"items[j]",[430,1186,1187],{},[31,1188,1189],{},"items[j + 1]",[14,1191,1192,1193,1196],{},"The ",[31,1194,1195],{},"n - i - 1"," part is important. It prevents the loop from going too far and avoids comparing values that are already in the correct place.",[867,1198,1200],{"id":1199},"_6-swap-values-when-needed","6. Swap values when needed",[36,1202,1204],{"className":38,"code":1203,"language":40,"meta":41,"style":41},"if items[j] > items[j + 1]:\n    items[j], items[j + 1] = items[j + 1], items[j]\n",[31,1205,1206,1233],{"__ignoreMap":41},[45,1207,1208,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231],{"class":47,"line":48},[45,1209,1210],{"class":124},"if",[45,1212,199],{"class":73},[45,1214,202],{"class":59},[45,1216,205],{"class":73},[45,1218,208],{"class":59},[45,1220,211],{"class":77},[45,1222,199],{"class":73},[45,1224,202],{"class":59},[45,1226,218],{"class":73},[45,1228,221],{"class":77},[45,1230,188],{"class":171},[45,1232,226],{"class":59},[45,1234,1235,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276],{"class":47,"line":70},[45,1236,1237],{"class":73},"    items",[45,1239,202],{"class":59},[45,1241,205],{"class":73},[45,1243,239],{"class":59},[45,1245,199],{"class":73},[45,1247,202],{"class":59},[45,1249,218],{"class":73},[45,1251,221],{"class":77},[45,1253,188],{"class":171},[45,1255,208],{"class":59},[45,1257,254],{"class":77},[45,1259,199],{"class":73},[45,1261,202],{"class":59},[45,1263,218],{"class":73},[45,1265,221],{"class":77},[45,1267,188],{"class":171},[45,1269,239],{"class":59},[45,1271,199],{"class":73},[45,1273,202],{"class":59},[45,1275,205],{"class":73},[45,1277,275],{"class":59},[14,1279,1280],{},"This checks whether the left value is bigger than the right value.",[14,1282,1283],{},"If it is, the two values are swapped.",[14,1285,1286],{},"The line:",[36,1288,1290],{"className":38,"code":1289,"language":40,"meta":41,"style":41},"items[j], items[j + 1] = items[j + 1], items[j]\n",[31,1291,1292],{"__ignoreMap":41},[45,1293,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334],{"class":47,"line":48},[45,1295,108],{"class":73},[45,1297,202],{"class":59},[45,1299,205],{"class":73},[45,1301,239],{"class":59},[45,1303,199],{"class":73},[45,1305,202],{"class":59},[45,1307,218],{"class":73},[45,1309,221],{"class":77},[45,1311,188],{"class":171},[45,1313,208],{"class":59},[45,1315,254],{"class":77},[45,1317,199],{"class":73},[45,1319,202],{"class":59},[45,1321,218],{"class":73},[45,1323,221],{"class":77},[45,1325,188],{"class":171},[45,1327,239],{"class":59},[45,1329,199],{"class":73},[45,1331,202],{"class":59},[45,1333,205],{"class":73},[45,1335,275],{"class":59},[14,1337,1338],{},"uses tuple assignment, which is a short Python way to swap two values.",[419,1340,1342],{"id":1341},"add-a-simple-optimization","Add a simple optimization",[14,1344,1345],{},"This version includes a small improvement:",[36,1347,1349],{"className":38,"code":1348,"language":40,"meta":41,"style":41},"swapped = False\n",[31,1350,1351],{"__ignoreMap":41},[45,1352,1353,1356,1358],{"class":47,"line":48},[45,1354,1355],{"class":73},"swapped ",[45,1357,78],{"class":77},[45,1359,153],{"class":152},[14,1361,1362],{},"At the start of each pass, we assume no swaps will happen.",[14,1364,1365],{},"Then, if a swap does happen, we change it:",[36,1367,1369],{"className":38,"code":1368,"language":40,"meta":41,"style":41},"swapped = True\n",[31,1370,1371],{"__ignoreMap":41},[45,1372,1373,1375,1377],{"class":47,"line":48},[45,1374,1355],{"class":73},[45,1376,78],{"class":77},[45,1378,286],{"class":152},[14,1380,1381],{},"At the end of the pass:",[36,1383,1385],{"className":38,"code":1384,"language":40,"meta":41,"style":41},"if not swapped:\n    break\n",[31,1386,1387,1397],{"__ignoreMap":41},[45,1388,1389,1391,1393,1395],{"class":47,"line":48},[45,1390,1210],{"class":124},[45,1392,295],{"class":77},[45,1394,298],{"class":73},[45,1396,301],{"class":59},[45,1398,1399],{"class":47,"line":70},[45,1400,1401],{"class":124},"    break\n",[14,1403,1404],{},"If no swap happened, the list is already sorted, so the function stops early.",[14,1406,1407,1408,538,1412,84],{},"This makes the example a little better, but bubble sort is still slow compared with Python’s built-in tools like ",[27,1409,1410],{"href":29},[31,1411,33],{},[27,1413,1415],{"href":1414},"\u002Freference\u002Fpython-list-sort-method\u002F",[31,1416,1417],{},"list.sort()",[419,1419,1421],{"id":1420},"example-input-and-expected-output","Example input and expected output",[14,1423,1424],{},"Here is a complete example:",[36,1426,1428],{"className":38,"code":1427,"language":40,"meta":41,"style":41},"def bubble_sort(numbers):\n    items = numbers.copy()\n    n = len(items)\n\n    for i in range(n):\n        swapped = False\n        for j in range(0, n - i - 1):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n                swapped = True\n        if not swapped:\n            break\n\n    return items\n\nvalues = [5, 2, 9, 1, 3]\nsorted_values = bubble_sort(values)\n\nprint(\"Original:\", values)\nprint(\"Sorted:  \", sorted_values)\n",[31,1429,1430,1442,1456,1470,1474,1490,1498,1526,1552,1596,1604,1614,1618,1622,1628,1632,1660,1675,1680,1700],{"__ignoreMap":41},[45,1431,1432,1434,1436,1438,1440],{"class":47,"line":48},[45,1433,52],{"class":51},[45,1435,56],{"class":55},[45,1437,60],{"class":59},[45,1439,64],{"class":63},[45,1441,67],{"class":59},[45,1443,1444,1446,1448,1450,1452,1454],{"class":47,"line":70},[45,1445,74],{"class":73},[45,1447,78],{"class":77},[45,1449,81],{"class":73},[45,1451,84],{"class":59},[45,1453,88],{"class":87},[45,1455,91],{"class":59},[45,1457,1458,1460,1462,1464,1466,1468],{"class":47,"line":94},[45,1459,97],{"class":73},[45,1461,78],{"class":77},[45,1463,103],{"class":102},[45,1465,60],{"class":59},[45,1467,108],{"class":87},[45,1469,111],{"class":59},[45,1471,1472],{"class":47,"line":114},[45,1473,118],{"emptyLinePlaceholder":117},[45,1475,1476,1478,1480,1482,1484,1486,1488],{"class":47,"line":121},[45,1477,125],{"class":124},[45,1479,128],{"class":73},[45,1481,131],{"class":124},[45,1483,134],{"class":102},[45,1485,60],{"class":59},[45,1487,139],{"class":87},[45,1489,67],{"class":59},[45,1491,1492,1494,1496],{"class":47,"line":144},[45,1493,147],{"class":73},[45,1495,78],{"class":77},[45,1497,153],{"class":152},[45,1499,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524],{"class":47,"line":156},[45,1501,159],{"class":124},[45,1503,162],{"class":73},[45,1505,131],{"class":124},[45,1507,134],{"class":102},[45,1509,60],{"class":59},[45,1511,172],{"class":171},[45,1513,175],{"class":59},[45,1515,178],{"class":87},[45,1517,181],{"class":77},[45,1519,128],{"class":87},[45,1521,181],{"class":77},[45,1523,188],{"class":171},[45,1525,67],{"class":59},[45,1527,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550],{"class":47,"line":193},[45,1529,196],{"class":124},[45,1531,199],{"class":73},[45,1533,202],{"class":59},[45,1535,205],{"class":73},[45,1537,208],{"class":59},[45,1539,211],{"class":77},[45,1541,199],{"class":73},[45,1543,202],{"class":59},[45,1545,218],{"class":73},[45,1547,221],{"class":77},[45,1549,188],{"class":171},[45,1551,226],{"class":59},[45,1553,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594],{"class":47,"line":229},[45,1555,232],{"class":73},[45,1557,202],{"class":59},[45,1559,205],{"class":73},[45,1561,239],{"class":59},[45,1563,199],{"class":73},[45,1565,202],{"class":59},[45,1567,218],{"class":73},[45,1569,221],{"class":77},[45,1571,188],{"class":171},[45,1573,208],{"class":59},[45,1575,254],{"class":77},[45,1577,199],{"class":73},[45,1579,202],{"class":59},[45,1581,218],{"class":73},[45,1583,221],{"class":77},[45,1585,188],{"class":171},[45,1587,239],{"class":59},[45,1589,199],{"class":73},[45,1591,202],{"class":59},[45,1593,205],{"class":73},[45,1595,275],{"class":59},[45,1597,1598,1600,1602],{"class":47,"line":278},[45,1599,281],{"class":73},[45,1601,78],{"class":77},[45,1603,286],{"class":152},[45,1605,1606,1608,1610,1612],{"class":47,"line":289},[45,1607,292],{"class":124},[45,1609,295],{"class":77},[45,1611,298],{"class":73},[45,1613,301],{"class":59},[45,1615,1616],{"class":47,"line":304},[45,1617,307],{"class":124},[45,1619,1620],{"class":47,"line":310},[45,1621,118],{"emptyLinePlaceholder":117},[45,1623,1624,1626],{"class":47,"line":315},[45,1625,318],{"class":124},[45,1627,321],{"class":73},[45,1629,1630],{"class":47,"line":324},[45,1631,118],{"emptyLinePlaceholder":117},[45,1633,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658],{"class":47,"line":329},[45,1635,332],{"class":73},[45,1637,78],{"class":77},[45,1639,337],{"class":59},[45,1641,340],{"class":171},[45,1643,175],{"class":59},[45,1645,345],{"class":171},[45,1647,175],{"class":59},[45,1649,350],{"class":171},[45,1651,175],{"class":59},[45,1653,188],{"class":171},[45,1655,175],{"class":59},[45,1657,359],{"class":171},[45,1659,275],{"class":59},[45,1661,1662,1665,1667,1669,1671,1673],{"class":47,"line":364},[45,1663,1664],{"class":73},"sorted_values ",[45,1666,78],{"class":77},[45,1668,56],{"class":87},[45,1670,60],{"class":59},[45,1672,377],{"class":87},[45,1674,111],{"class":59},[45,1676,1678],{"class":47,"line":1677},18,[45,1679,118],{"emptyLinePlaceholder":117},[45,1681,1683,1685,1687,1689,1692,1694,1696,1698],{"class":47,"line":1682},19,[45,1684,367],{"class":102},[45,1686,60],{"class":59},[45,1688,982],{"class":981},[45,1690,1691],{"class":985},"Original:",[45,1693,982],{"class":981},[45,1695,175],{"class":59},[45,1697,993],{"class":87},[45,1699,111],{"class":59},[45,1701,1703,1705,1707,1709,1712,1714,1716,1719],{"class":47,"line":1702},20,[45,1704,367],{"class":102},[45,1706,60],{"class":59},[45,1708,982],{"class":981},[45,1710,1711],{"class":985},"Sorted:  ",[45,1713,982],{"class":981},[45,1715,175],{"class":59},[45,1717,1718],{"class":87}," sorted_values",[45,1720,111],{"class":59},[14,1722,1723],{},[384,1724,386],{},[36,1726,1728],{"className":38,"code":1727,"language":40,"meta":41,"style":41},"Original: [5, 2, 9, 1, 3]\nSorted:   [1, 2, 3, 5, 9]\n",[31,1729,1730,1759],{"__ignoreMap":41},[45,1731,1732,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757],{"class":47,"line":48},[45,1733,1734],{"class":73},"Original",[45,1736,1031],{"class":59},[45,1738,337],{"class":59},[45,1740,340],{"class":171},[45,1742,175],{"class":59},[45,1744,345],{"class":171},[45,1746,175],{"class":59},[45,1748,350],{"class":171},[45,1750,175],{"class":59},[45,1752,188],{"class":171},[45,1754,175],{"class":59},[45,1756,359],{"class":171},[45,1758,275],{"class":59},[45,1760,1761,1764,1766,1769,1771,1773,1775,1777,1779,1781,1783,1785,1787],{"class":47,"line":70},[45,1762,1763],{"class":73},"Sorted",[45,1765,1031],{"class":59},[45,1767,1768],{"class":59},"   [",[45,1770,398],{"class":171},[45,1772,175],{"class":59},[45,1774,345],{"class":171},[45,1776,175],{"class":59},[45,1778,359],{"class":171},[45,1780,175],{"class":59},[45,1782,411],{"class":171},[45,1784,175],{"class":59},[45,1786,350],{"class":171},[45,1788,275],{"class":59},[525,1790,1792],{"id":1791},"version-that-sorts-in-place","Version that sorts in place",[14,1794,1795,1796,1031],{},"If you want to change the original list directly, you can remove ",[31,1797,1798],{},".copy()",[36,1800,1802],{"className":38,"code":1801,"language":40,"meta":41,"style":41},"def bubble_sort_in_place(items):\n    n = len(items)\n\n    for i in range(n):\n        swapped = False\n        for j in range(0, n - i - 1):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n                swapped = True\n        if not swapped:\n            break\n\nvalues = [5, 2, 9, 1, 3]\nbubble_sort_in_place(values)\nprint(values)\n",[31,1803,1804,1817,1831,1835,1851,1859,1887,1913,1957,1965,1975,1979,1983,2011,2022],{"__ignoreMap":41},[45,1805,1806,1808,1811,1813,1815],{"class":47,"line":48},[45,1807,52],{"class":51},[45,1809,1810],{"class":55}," bubble_sort_in_place",[45,1812,60],{"class":59},[45,1814,108],{"class":63},[45,1816,67],{"class":59},[45,1818,1819,1821,1823,1825,1827,1829],{"class":47,"line":70},[45,1820,97],{"class":73},[45,1822,78],{"class":77},[45,1824,103],{"class":102},[45,1826,60],{"class":59},[45,1828,108],{"class":87},[45,1830,111],{"class":59},[45,1832,1833],{"class":47,"line":94},[45,1834,118],{"emptyLinePlaceholder":117},[45,1836,1837,1839,1841,1843,1845,1847,1849],{"class":47,"line":114},[45,1838,125],{"class":124},[45,1840,128],{"class":73},[45,1842,131],{"class":124},[45,1844,134],{"class":102},[45,1846,60],{"class":59},[45,1848,139],{"class":87},[45,1850,67],{"class":59},[45,1852,1853,1855,1857],{"class":47,"line":121},[45,1854,147],{"class":73},[45,1856,78],{"class":77},[45,1858,153],{"class":152},[45,1860,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1883,1885],{"class":47,"line":144},[45,1862,159],{"class":124},[45,1864,162],{"class":73},[45,1866,131],{"class":124},[45,1868,134],{"class":102},[45,1870,60],{"class":59},[45,1872,172],{"class":171},[45,1874,175],{"class":59},[45,1876,178],{"class":87},[45,1878,181],{"class":77},[45,1880,128],{"class":87},[45,1882,181],{"class":77},[45,1884,188],{"class":171},[45,1886,67],{"class":59},[45,1888,1889,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909,1911],{"class":47,"line":156},[45,1890,196],{"class":124},[45,1892,199],{"class":73},[45,1894,202],{"class":59},[45,1896,205],{"class":73},[45,1898,208],{"class":59},[45,1900,211],{"class":77},[45,1902,199],{"class":73},[45,1904,202],{"class":59},[45,1906,218],{"class":73},[45,1908,221],{"class":77},[45,1910,188],{"class":171},[45,1912,226],{"class":59},[45,1914,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955],{"class":47,"line":193},[45,1916,232],{"class":73},[45,1918,202],{"class":59},[45,1920,205],{"class":73},[45,1922,239],{"class":59},[45,1924,199],{"class":73},[45,1926,202],{"class":59},[45,1928,218],{"class":73},[45,1930,221],{"class":77},[45,1932,188],{"class":171},[45,1934,208],{"class":59},[45,1936,254],{"class":77},[45,1938,199],{"class":73},[45,1940,202],{"class":59},[45,1942,218],{"class":73},[45,1944,221],{"class":77},[45,1946,188],{"class":171},[45,1948,239],{"class":59},[45,1950,199],{"class":73},[45,1952,202],{"class":59},[45,1954,205],{"class":73},[45,1956,275],{"class":59},[45,1958,1959,1961,1963],{"class":47,"line":229},[45,1960,281],{"class":73},[45,1962,78],{"class":77},[45,1964,286],{"class":152},[45,1966,1967,1969,1971,1973],{"class":47,"line":278},[45,1968,292],{"class":124},[45,1970,295],{"class":77},[45,1972,298],{"class":73},[45,1974,301],{"class":59},[45,1976,1977],{"class":47,"line":289},[45,1978,307],{"class":124},[45,1980,1981],{"class":47,"line":304},[45,1982,118],{"emptyLinePlaceholder":117},[45,1984,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009],{"class":47,"line":310},[45,1986,332],{"class":73},[45,1988,78],{"class":77},[45,1990,337],{"class":59},[45,1992,340],{"class":171},[45,1994,175],{"class":59},[45,1996,345],{"class":171},[45,1998,175],{"class":59},[45,2000,350],{"class":171},[45,2002,175],{"class":59},[45,2004,188],{"class":171},[45,2006,175],{"class":59},[45,2008,359],{"class":171},[45,2010,275],{"class":59},[45,2012,2013,2016,2018,2020],{"class":47,"line":315},[45,2014,2015],{"class":87},"bubble_sort_in_place",[45,2017,60],{"class":59},[45,2019,377],{"class":87},[45,2021,111],{"class":59},[45,2023,2024,2026,2028,2030],{"class":47,"line":324},[45,2025,367],{"class":102},[45,2027,60],{"class":59},[45,2029,377],{"class":87},[45,2031,111],{"class":59},[14,2033,2034],{},[384,2035,386],{},[36,2037,2038],{"className":38,"code":389,"language":40,"meta":41,"style":41},[31,2039,2040],{"__ignoreMap":41},[45,2041,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062],{"class":47,"line":48},[45,2043,202],{"class":59},[45,2045,398],{"class":171},[45,2047,175],{"class":59},[45,2049,345],{"class":171},[45,2051,175],{"class":59},[45,2053,359],{"class":171},[45,2055,175],{"class":59},[45,2057,411],{"class":171},[45,2059,175],{"class":59},[45,2061,350],{"class":171},[45,2063,275],{"class":59},[14,2065,2066],{},"This version changes the original list.",[419,2068,2070],{"id":2069},"when-not-to-use-bubble-sort","When not to use bubble sort",[14,2072,2073],{},"Bubble sort is helpful for understanding how sorting works, but it is not a good choice for most real code.",[14,2075,2076],{},"Avoid it when:",[427,2078,2079,2082,2085],{},[430,2080,2081],{},"You are sorting larger lists",[430,2083,2084],{},"You want the simplest solution",[430,2086,2087],{},"You care about performance",[14,2089,2090],{},"In normal Python code, use:",[427,2092,2093,2100,2107],{},[430,2094,2095],{},[27,2096,2097,2099],{"href":29},[31,2098,33],{}," for returning a new sorted list",[430,2101,2102],{},[27,2103,2104,2106],{"href":1414},[31,2105,1417],{}," for sorting a list in place",[430,2108,2109,2113],{},[27,2110,2112],{"href":2111},"\u002Fhow-to\u002Fhow-to-sort-a-list-in-python\u002F","How to sort a list in Python"," if you want the practical approach",[419,2115,2117],{"id":2116},"common-mistakes","Common mistakes",[14,2119,2120],{},"Here are some common problems beginners run into when writing bubble sort.",[525,2122,2124],{"id":2123},"using-the-wrong-inner-loop-range","Using the wrong inner loop range",[14,2126,2127,2128,2130],{},"A very common bug is letting ",[31,2129,205],{}," go too far.",[14,2132,2133],{},"Bad example:",[36,2135,2137],{"className":38,"code":2136,"language":40,"meta":41,"style":41},"def broken_bubble_sort(items):\n    n = len(items)\n    for i in range(n):\n        for j in range(n):\n            if items[j] > items[j + 1]:\n                items[j], items[j + 1] = items[j + 1], items[j]\n",[31,2138,2139,2152,2166,2182,2198,2224],{"__ignoreMap":41},[45,2140,2141,2143,2146,2148,2150],{"class":47,"line":48},[45,2142,52],{"class":51},[45,2144,2145],{"class":55}," broken_bubble_sort",[45,2147,60],{"class":59},[45,2149,108],{"class":63},[45,2151,67],{"class":59},[45,2153,2154,2156,2158,2160,2162,2164],{"class":47,"line":70},[45,2155,97],{"class":73},[45,2157,78],{"class":77},[45,2159,103],{"class":102},[45,2161,60],{"class":59},[45,2163,108],{"class":87},[45,2165,111],{"class":59},[45,2167,2168,2170,2172,2174,2176,2178,2180],{"class":47,"line":94},[45,2169,125],{"class":124},[45,2171,128],{"class":73},[45,2173,131],{"class":124},[45,2175,134],{"class":102},[45,2177,60],{"class":59},[45,2179,139],{"class":87},[45,2181,67],{"class":59},[45,2183,2184,2186,2188,2190,2192,2194,2196],{"class":47,"line":114},[45,2185,159],{"class":124},[45,2187,162],{"class":73},[45,2189,131],{"class":124},[45,2191,134],{"class":102},[45,2193,60],{"class":59},[45,2195,139],{"class":87},[45,2197,67],{"class":59},[45,2199,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222],{"class":47,"line":121},[45,2201,196],{"class":124},[45,2203,199],{"class":73},[45,2205,202],{"class":59},[45,2207,205],{"class":73},[45,2209,208],{"class":59},[45,2211,211],{"class":77},[45,2213,199],{"class":73},[45,2215,202],{"class":59},[45,2217,218],{"class":73},[45,2219,221],{"class":77},[45,2221,188],{"class":171},[45,2223,226],{"class":59},[45,2225,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266],{"class":47,"line":144},[45,2227,232],{"class":73},[45,2229,202],{"class":59},[45,2231,205],{"class":73},[45,2233,239],{"class":59},[45,2235,199],{"class":73},[45,2237,202],{"class":59},[45,2239,218],{"class":73},[45,2241,221],{"class":77},[45,2243,188],{"class":171},[45,2245,208],{"class":59},[45,2247,254],{"class":77},[45,2249,199],{"class":73},[45,2251,202],{"class":59},[45,2253,218],{"class":73},[45,2255,221],{"class":77},[45,2257,188],{"class":171},[45,2259,239],{"class":59},[45,2261,199],{"class":73},[45,2263,202],{"class":59},[45,2265,205],{"class":73},[45,2267,275],{"class":59},[14,2269,2270,2271,2274],{},"This can raise an error because ",[31,2272,2273],{},"j + 1"," becomes invalid near the end of the list.",[14,2276,2277,2278,84],{},"If you get this problem, see ",[27,2279,2281],{"href":2280},"\u002Ferrors\u002Findexerror-list-index-out-of-range-fix-explained\u002F","IndexError: list index out of range",[525,2283,2285],{"id":2284},"forgetting-to-swap-values","Forgetting to swap values",[14,2287,2288],{},"Sometimes the comparison is correct, but the code never swaps the values.",[14,2290,2291],{},"Make sure you include:",[36,2293,2294],{"className":38,"code":1289,"language":40,"meta":41,"style":41},[31,2295,2296],{"__ignoreMap":41},[45,2297,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338],{"class":47,"line":48},[45,2299,108],{"class":73},[45,2301,202],{"class":59},[45,2303,205],{"class":73},[45,2305,239],{"class":59},[45,2307,199],{"class":73},[45,2309,202],{"class":59},[45,2311,218],{"class":73},[45,2313,221],{"class":77},[45,2315,188],{"class":171},[45,2317,208],{"class":59},[45,2319,254],{"class":77},[45,2321,199],{"class":73},[45,2323,202],{"class":59},[45,2325,218],{"class":73},[45,2327,221],{"class":77},[45,2329,188],{"class":171},[45,2331,239],{"class":59},[45,2333,199],{"class":73},[45,2335,202],{"class":59},[45,2337,205],{"class":73},[45,2339,275],{"class":59},[525,2341,2343],{"id":2342},"changing-the-original-list-by-accident","Changing the original list by accident",[14,2345,2346],{},"If you expected the original list to stay the same, use:",[36,2348,2349],{"className":38,"code":897,"language":40,"meta":41,"style":41},[31,2350,2351],{"__ignoreMap":41},[45,2352,2353,2355,2357,2359,2361,2363],{"class":47,"line":48},[45,2354,904],{"class":73},[45,2356,78],{"class":77},[45,2358,81],{"class":73},[45,2360,84],{"class":59},[45,2362,88],{"class":87},[45,2364,91],{"class":59},[14,2366,2367],{},"Without that line, the function will change the original list directly.",[525,2369,2371],{"id":2370},"using-the-wrong-comparison-operator","Using the wrong comparison operator",[14,2373,2374],{},"For ascending order, use:",[36,2376,2378],{"className":38,"code":2377,"language":40,"meta":41,"style":41},"if items[j] > items[j + 1]:\n",[31,2379,2380],{"__ignoreMap":41},[45,2381,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404],{"class":47,"line":48},[45,2383,1210],{"class":124},[45,2385,199],{"class":73},[45,2387,202],{"class":59},[45,2389,205],{"class":73},[45,2391,208],{"class":59},[45,2393,211],{"class":77},[45,2395,199],{"class":73},[45,2397,202],{"class":59},[45,2399,218],{"class":73},[45,2401,221],{"class":77},[45,2403,188],{"class":171},[45,2405,226],{"class":59},[14,2407,2408,2409,2412],{},"If you accidentally use ",[31,2410,2411],{},"\u003C",", you will sort in descending order instead.",[419,2414,2416],{"id":2415},"faq","FAQ",[525,2418,2420],{"id":2419},"is-bubble-sort-useful-in-real-python-programs","Is bubble sort useful in real Python programs?",[14,2422,2423],{},"Usually no. It is mainly useful for learning how sorting algorithms work.",[525,2425,2427,2428,2430],{"id":2426},"should-i-use-sorted-instead-of-bubble-sort","Should I use ",[31,2429,33],{}," instead of bubble sort?",[14,2432,2433,2434,2436],{},"Yes, in most real code. ",[31,2435,33],{}," is simpler and much faster.",[525,2438,2440],{"id":2439},"does-this-function-change-the-original-list","Does this function change the original list?",[14,2442,2443],{},"Not if the function sorts a copy. If it works directly on the input list, then yes.",[525,2445,2447,2448,2451],{"id":2446},"why-do-i-get-list-index-out-of-range","Why do I get ",[31,2449,2450],{},"list index out of range","?",[14,2453,2454,2455,2457],{},"The inner loop probably goes too far, so ",[31,2456,2273],{}," becomes an invalid index.",[419,2459,2461],{"id":2460},"see-also","See also",[427,2463,2464,2469,2474,2478,2482,2487],{},[430,2465,2466],{},[27,2467,2468],{"href":29},"Python sorted() function explained",[430,2470,2471],{},[27,2472,2473],{"href":1414},"Python list.sort() method",[430,2475,2476],{},[27,2477,2112],{"href":2111},[430,2479,2480],{},[27,2481,452],{"href":451},[430,2483,2484],{},[27,2485,2486],{"href":2280},"IndexError: list index out of range fix explained",[430,2488,2489],{},[27,2490,2492],{"href":2491},"\u002Fexamples\u002Fpython-search-algorithm-example-linear-search\u002F","Python search algorithm example (linear search)",[2494,2495,2496],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sFwrP, html code.shiki .sFwrP{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":41,"searchDepth":70,"depth":70,"links":2498},[2499,2500,2505,2508,2509,2512,2513,2519,2527],{"id":421,"depth":70,"text":422},{"id":455,"depth":70,"text":456,"children":2501},[2502,2503,2504],{"id":527,"depth":94,"text":528},{"id":580,"depth":94,"text":581},{"id":619,"depth":94,"text":620},{"id":654,"depth":70,"text":655,"children":2506},[2507],{"id":864,"depth":94,"text":865},{"id":1341,"depth":70,"text":1342},{"id":1420,"depth":70,"text":1421,"children":2510},[2511],{"id":1791,"depth":94,"text":1792},{"id":2069,"depth":70,"text":2070},{"id":2116,"depth":70,"text":2117,"children":2514},[2515,2516,2517,2518],{"id":2123,"depth":94,"text":2124},{"id":2284,"depth":94,"text":2285},{"id":2342,"depth":94,"text":2343},{"id":2370,"depth":94,"text":2371},{"id":2415,"depth":70,"text":2416,"children":2520},[2521,2522,2524,2525],{"id":2419,"depth":94,"text":2420},{"id":2426,"depth":94,"text":2523},"Should I use sorted() instead of bubble sort?",{"id":2439,"depth":94,"text":2440},{"id":2446,"depth":94,"text":2526},"Why do I get list index out of range?",{"id":2460,"depth":70,"text":2461},"Master python sorting algorithm example bubble sort in our comprehensive Python beginner guide.","md",{},"\u002Fexamples\u002Fpython-sorting-algorithm-example-bubble-sort",{"title":5,"description":2528},"examples\u002Fpython-sorting-algorithm-example-bubble-sort","W_Qtoi2ulMW13sNYH_2N33O4LqgasUr4xqBwcM-lBb4",1777585478016]