In [59]:
def sort(list):
    times = len(list) - 1
    # create a new empty list to add sorted values 
    sorted = []


    while times + 1> 0:
        min = list[0]
        for item in list:
             if item < min:
                    min = item
        # after finding the smallest element, append it to the new sorted list
        sorted.append(min)
        
        #remove the smallest element from the original list 
        list.remove(min)
        
        #incremenet the number of times, in order to get closer to the condition
        # that will halt this while loops 
        times = times - 1
    
    return sorted

In [60]:
sort([3,56,12,4,56,81,2])


Out[60]:
[2, 3, 4, 12, 56, 56, 81]

In [61]:
sort([5,6,2,100,4,6,20000])


Out[61]:
[2, 4, 5, 6, 6, 100, 20000]

In [62]:
from random import randint

def random_num_gen(x):
    random_list = [] 
    count = 0 
    while count < x:
        random_list.append(randint(0,1000))
        count = count + 1
    return random_list

In [63]:
ten_sample = random_num_gen(10)

In [64]:
hundred_sample = random_num_gen(100)

In [65]:
thousand_sample = random_num_gen(1000)

In [66]:
%time sort(ten_sample)


CPU times: user 19 µs, sys: 0 ns, total: 19 µs
Wall time: 23.1 µs
Out[66]:
[132, 234, 355, 556, 607, 613, 772, 893, 920, 958]

In [67]:
%time sort(hundred_sample)


CPU times: user 503 µs, sys: 1e+03 ns, total: 504 µs
Wall time: 512 µs
Out[67]:
[3,
 6,
 22,
 30,
 36,
 54,
 66,
 107,
 112,
 119,
 122,
 127,
 136,
 137,
 173,
 187,
 192,
 192,
 194,
 197,
 216,
 224,
 227,
 239,
 250,
 262,
 274,
 274,
 279,
 279,
 291,
 295,
 300,
 307,
 309,
 319,
 320,
 337,
 346,
 357,
 357,
 387,
 396,
 396,
 420,
 423,
 434,
 511,
 515,
 539,
 550,
 560,
 560,
 564,
 594,
 627,
 638,
 641,
 645,
 663,
 683,
 701,
 705,
 706,
 708,
 712,
 712,
 739,
 744,
 749,
 755,
 768,
 773,
 778,
 781,
 785,
 792,
 804,
 822,
 825,
 827,
 843,
 843,
 854,
 855,
 865,
 882,
 884,
 899,
 902,
 926,
 932,
 934,
 945,
 949,
 957,
 964,
 966,
 983,
 988]

In [68]:
%time sort(thousand_sample)


CPU times: user 28.8 ms, sys: 1.79 ms, total: 30.6 ms
Wall time: 29.2 ms
Out[68]:
[0,
 1,
 5,
 5,
 5,
 6,
 7,
 7,
 9,
 10,
 11,
 11,
 12,
 13,
 14,
 14,
 15,
 15,
 19,
 19,
 21,
 22,
 23,
 25,
 30,
 31,
 32,
 32,
 33,
 33,
 34,
 38,
 39,
 40,
 40,
 40,
 41,
 42,
 42,
 42,
 42,
 42,
 44,
 46,
 51,
 51,
 52,
 55,
 55,
 56,
 56,
 58,
 59,
 60,
 60,
 61,
 61,
 62,
 63,
 64,
 64,
 66,
 67,
 68,
 69,
 69,
 69,
 70,
 71,
 73,
 73,
 76,
 77,
 80,
 81,
 82,
 82,
 83,
 84,
 84,
 87,
 88,
 89,
 93,
 94,
 94,
 98,
 101,
 101,
 102,
 102,
 103,
 104,
 104,
 105,
 105,
 105,
 107,
 107,
 108,
 109,
 109,
 113,
 113,
 114,
 115,
 116,
 116,
 117,
 118,
 118,
 119,
 120,
 121,
 124,
 125,
 126,
 127,
 127,
 128,
 128,
 128,
 128,
 128,
 128,
 129,
 129,
 130,
 130,
 131,
 131,
 131,
 131,
 132,
 132,
 132,
 135,
 135,
 136,
 136,
 140,
 140,
 141,
 143,
 144,
 144,
 146,
 147,
 149,
 149,
 150,
 152,
 152,
 153,
 154,
 155,
 155,
 157,
 158,
 158,
 160,
 160,
 160,
 164,
 166,
 167,
 168,
 168,
 169,
 169,
 170,
 171,
 171,
 171,
 172,
 173,
 174,
 174,
 174,
 178,
 179,
 180,
 181,
 181,
 182,
 183,
 184,
 185,
 188,
 188,
 190,
 190,
 191,
 192,
 192,
 193,
 196,
 197,
 197,
 199,
 199,
 200,
 202,
 202,
 203,
 205,
 206,
 208,
 208,
 209,
 209,
 209,
 210,
 211,
 212,
 212,
 213,
 215,
 217,
 218,
 218,
 218,
 219,
 219,
 220,
 220,
 220,
 222,
 223,
 224,
 224,
 224,
 225,
 225,
 226,
 227,
 229,
 230,
 230,
 231,
 232,
 232,
 233,
 234,
 238,
 240,
 240,
 241,
 241,
 242,
 242,
 243,
 243,
 244,
 246,
 246,
 247,
 247,
 248,
 248,
 250,
 252,
 254,
 254,
 255,
 255,
 256,
 256,
 257,
 257,
 257,
 259,
 259,
 259,
 260,
 260,
 261,
 262,
 262,
 263,
 263,
 266,
 266,
 268,
 268,
 270,
 270,
 271,
 271,
 272,
 278,
 278,
 278,
 279,
 279,
 279,
 279,
 280,
 280,
 281,
 282,
 283,
 284,
 288,
 288,
 289,
 289,
 290,
 292,
 293,
 293,
 293,
 298,
 299,
 301,
 301,
 302,
 303,
 303,
 304,
 306,
 307,
 308,
 309,
 309,
 311,
 311,
 311,
 311,
 313,
 316,
 317,
 318,
 318,
 319,
 320,
 321,
 322,
 322,
 322,
 324,
 326,
 328,
 329,
 329,
 330,
 330,
 331,
 332,
 333,
 334,
 336,
 339,
 340,
 340,
 341,
 341,
 343,
 344,
 344,
 345,
 345,
 346,
 348,
 350,
 352,
 353,
 355,
 356,
 356,
 356,
 358,
 359,
 361,
 361,
 362,
 363,
 364,
 366,
 367,
 367,
 368,
 373,
 374,
 374,
 375,
 375,
 376,
 377,
 377,
 378,
 378,
 378,
 379,
 380,
 381,
 385,
 389,
 390,
 391,
 392,
 392,
 393,
 393,
 393,
 393,
 393,
 393,
 395,
 397,
 398,
 399,
 399,
 400,
 400,
 402,
 402,
 402,
 403,
 403,
 405,
 407,
 407,
 407,
 408,
 412,
 412,
 412,
 412,
 415,
 416,
 416,
 419,
 419,
 420,
 421,
 422,
 423,
 423,
 424,
 425,
 425,
 425,
 426,
 426,
 426,
 426,
 426,
 427,
 428,
 428,
 429,
 430,
 431,
 431,
 433,
 435,
 435,
 436,
 436,
 438,
 438,
 439,
 440,
 440,
 441,
 441,
 441,
 445,
 451,
 453,
 453,
 453,
 454,
 454,
 456,
 456,
 457,
 457,
 457,
 458,
 459,
 462,
 464,
 464,
 464,
 464,
 465,
 467,
 470,
 472,
 473,
 474,
 475,
 475,
 476,
 476,
 478,
 479,
 479,
 480,
 480,
 482,
 482,
 482,
 483,
 483,
 484,
 485,
 485,
 487,
 487,
 487,
 487,
 489,
 491,
 492,
 493,
 494,
 494,
 494,
 497,
 499,
 499,
 503,
 504,
 504,
 505,
 505,
 506,
 508,
 509,
 510,
 513,
 513,
 513,
 513,
 515,
 515,
 516,
 516,
 517,
 519,
 519,
 519,
 519,
 522,
 524,
 524,
 524,
 526,
 527,
 528,
 530,
 530,
 531,
 532,
 532,
 533,
 533,
 538,
 538,
 538,
 539,
 539,
 541,
 542,
 542,
 544,
 546,
 546,
 547,
 548,
 548,
 549,
 551,
 554,
 555,
 556,
 556,
 557,
 557,
 558,
 558,
 561,
 561,
 564,
 564,
 568,
 571,
 571,
 574,
 575,
 581,
 581,
 581,
 582,
 584,
 585,
 586,
 586,
 586,
 589,
 589,
 591,
 594,
 595,
 595,
 598,
 599,
 599,
 599,
 600,
 604,
 605,
 607,
 608,
 608,
 610,
 610,
 614,
 614,
 614,
 617,
 617,
 619,
 620,
 621,
 621,
 623,
 624,
 624,
 625,
 625,
 625,
 626,
 626,
 627,
 630,
 631,
 633,
 633,
 634,
 634,
 636,
 637,
 639,
 642,
 646,
 647,
 647,
 647,
 650,
 650,
 652,
 652,
 652,
 658,
 658,
 659,
 660,
 665,
 665,
 666,
 668,
 669,
 669,
 671,
 672,
 673,
 673,
 674,
 674,
 675,
 676,
 676,
 676,
 679,
 680,
 681,
 684,
 685,
 685,
 686,
 687,
 687,
 687,
 688,
 691,
 694,
 694,
 695,
 695,
 696,
 699,
 701,
 701,
 702,
 702,
 702,
 702,
 702,
 703,
 704,
 707,
 707,
 708,
 709,
 709,
 711,
 711,
 712,
 713,
 715,
 716,
 718,
 722,
 723,
 724,
 724,
 726,
 728,
 728,
 728,
 728,
 729,
 732,
 732,
 733,
 733,
 733,
 737,
 738,
 740,
 741,
 743,
 747,
 748,
 749,
 750,
 752,
 753,
 754,
 755,
 757,
 757,
 757,
 761,
 761,
 761,
 762,
 762,
 764,
 764,
 764,
 765,
 766,
 767,
 768,
 769,
 769,
 770,
 773,
 773,
 773,
 774,
 776,
 777,
 777,
 777,
 780,
 781,
 781,
 782,
 783,
 783,
 784,
 785,
 785,
 786,
 787,
 789,
 789,
 790,
 790,
 793,
 797,
 797,
 798,
 799,
 802,
 802,
 802,
 804,
 804,
 805,
 806,
 806,
 807,
 807,
 807,
 807,
 807,
 809,
 809,
 811,
 811,
 812,
 812,
 812,
 813,
 813,
 813,
 814,
 815,
 817,
 817,
 817,
 818,
 821,
 823,
 823,
 824,
 825,
 825,
 825,
 825,
 826,
 827,
 828,
 829,
 830,
 830,
 830,
 832,
 832,
 832,
 834,
 836,
 837,
 837,
 837,
 842,
 843,
 844,
 845,
 846,
 846,
 848,
 849,
 849,
 850,
 852,
 852,
 854,
 854,
 857,
 857,
 857,
 858,
 858,
 860,
 861,
 861,
 861,
 862,
 862,
 862,
 864,
 864,
 865,
 865,
 869,
 869,
 871,
 872,
 874,
 875,
 877,
 877,
 878,
 880,
 882,
 882,
 882,
 884,
 884,
 889,
 892,
 892,
 892,
 893,
 894,
 894,
 894,
 895,
 897,
 898,
 900,
 900,
 901,
 902,
 902,
 904,
 905,
 907,
 907,
 908,
 908,
 909,
 910,
 910,
 910,
 912,
 916,
 918,
 920,
 922,
 923,
 923,
 926,
 927,
 928,
 930,
 932,
 932,
 932,
 934,
 935,
 936,
 936,
 937,
 938,
 939,
 939,
 941,
 942,
 944,
 944,
 945,
 945,
 945,
 945,
 947,
 950,
 950,
 950,
 951,
 952,
 955,
 956,
 958,
 959,
 960,
 963,
 963,
 965,
 967,
 967,
 969,
 969,
 971,
 971,
 973,
 974,
 974,
 974,
 976,
 977,
 978,
 983,
 984,
 985,
 986,
 986,
 987,
 988,
 989,
 990,
 991,
 991,
 992,
 993,
 993,
 993,
 993,
 993,
 993,
 993,
 994,
 994,
 994,
 995,
 997,
 998,
 998,
 1000,
 1000,
 1000,
 1000]

In [ ]: