Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Nếu tôi có một danh sách khác nhau về chiều dài mỗi lần và tôi muốn sắp xếp nó từ thấp nhất đến cao nhất, làm thế nào tôi sẽ làm điều đó?

Nếu tôi có:

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
9

Tôi muốn:

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
0

Tôi bắt đầu với điều này:

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]

new_list = []

minimum = data_list[0]  # arbitrary number in list 

for x in data_list: 
  if x < minimum:
    minimum = value
    new_list.append(i)

Nhưng điều này chỉ trải qua một lần và tôi nhận được:

new_list = [-23] 

Đây là nơi tôi bị mắc kẹt.

Làm thế nào để tôi tiếp tục lặp qua cho đến khi

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
1 (tức là tất cả các số nằm trong danh sách mới) với mọi thứ được sắp xếp mà không cần sử dụng các hàm được tích hợp trong Max, Min, sắp xếp? Tôi không chắc chắn nếu cần phải tạo một danh sách mới.

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Hỏi ngày 15 tháng 8 năm 2012 lúc 5:17Aug 15, 2012 at 5:17

0

Tôi đoán bạn đang cố gắng làm điều gì đó như thế này:

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)

#Dấu ngoặc đơn

Jay

3052 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:34Aug 15, 2012 at 5:34

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

John La Rooyjohn La RooyJohn La Rooy

288K51 Huy hiệu vàng359 Huy hiệu bạc501 Huy hiệu đồng51 gold badges359 silver badges501 bronze badges

0

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l

Đầu ra:

[1, 2, 3, 11, 12, 22, 23, 25, 34, 44, 64, 122]

Đã trả lời ngày 29 tháng 3 năm 2018 lúc 18:15Mar 29, 2018 at 18:15

1

Điều này nghiêm ngặt tuân theo các yêu cầu của bạn không sử dụng

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
2,
l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
3,
l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
4 nhưng cũng sử dụng thực hành Python tốt nhất bằng cách không phát minh lại bánh xe.

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
import heapq
heapq.heapify(data_list)
new_list = []
while data_list:
    new_list.append(heapq.heappop(data_list)))

Tôi đề nghị có một cái nhìn trong thư viện Python cho

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
5 để xem nó hoạt động như thế nào. Heapsort là một thuật toán sắp xếp khá thú vị vì nó cho phép bạn 'sắp xếp' một luồng vô hạn, tức là bạn có thể nhanh chóng nhận được các mục nhỏ nhất hiện tại nhưng cũng thêm hiệu quả các mục mới vào dữ liệu được sắp xếp.

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 8:10Aug 15, 2012 at 8:10

DuncanduncanDuncan

89K11 Huy hiệu vàng117 Huy hiệu bạc155 Huy hiệu Đồng11 gold badges117 silver badges155 bronze badges

Đây là một cái gì đó mà tôi đã cố gắng. (Chèn sắp xếp- không phải là cách tốt nhất để sắp xếp mà là công việc)

def sort(list):
    for index in range(1,len(list)):
        value = list[index]
        i = index-1
        while i>=0:
            if value < list[i]:
                list[i+1] = list[i]
                list[i] = value
                i -= 1
            else:
                break

Đã trả lời ngày 13 tháng 9 năm 2014 lúc 18:13Sep 13, 2014 at 18:13

biệt danhnick

511 Huy hiệu bạc2 Huy hiệu đồng1 silver badge2 bronze badges

Những công việc này!

def sorting(li):
    for i in range(len(li)):
        for j in range(len(li)):
            if li[i] < li[j]:
                li[j],li[i] = li[i],li[j]
    return li

listToSort = [22,11,23,1,100,24,3,101,2,4]
print(sorting(listToSort))

Đã trả lời ngày 10 tháng 10 năm 2020 lúc 7:42Oct 10, 2020 at 7:42

Laplacelaplacelaplace

5666 Huy hiệu bạc15 Huy hiệu Đồng6 silver badges15 bronze badges

def bubble_sort(seq):
    """Inefficiently sort the mutable sequence (list) in place.
       seq MUST BE A MUTABLE SEQUENCE.

       As with list.sort() and random.shuffle this does NOT return 
    """
    changed = True
    while changed:
        changed = False
        for i in xrange(len(seq) - 1):
            if seq[i] > seq[i+1]:
                seq[i], seq[i+1] = seq[i+1], seq[i]
                changed = True
    return None

if __name__ == "__main__":
   """Sample usage and simple test suite"""

   from random import shuffle

   testset = range(100)
   testcase = testset[:] # make a copy
   shuffle(testcase)
   assert testcase != testset  # we've shuffled it
   bubble_sort(testcase)
   assert testcase == testset  # we've unshuffled it back into a copy

Từ: http://rosettacode.org/wiki/bubble_sort#python

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:20Aug 15, 2012 at 5:20

Joran Beasleyjoran BeasleyJoran Beasley

107K12 Huy hiệu vàng150 Huy hiệu bạc175 Huy hiệu đồng12 gold badges150 silver badges175 bronze badges

4

Đây là một thuật toán sắp xếp không hiệu quả lắm :)

>>> data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
>>> from itertools import permutations
>>> for p in permutations(data_list):
...     if all(i<=j for i,j in zip(p,p[1:])):
...         print p
...         break
... 
(-23, -6, -5, 0, 5, 23, 23, 67)

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:29Aug 15, 2012 at 5:29

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

John La Rooyjohn La RooyJohn La Rooy

288K51 Huy hiệu vàng359 Huy hiệu bạc501 Huy hiệu đồng51 gold badges359 silver badges501 bronze badges

2

Đầu ra:

new_list = [-23] 
0

Đã trả lời ngày 29 tháng 3 năm 2018 lúc 18:15Aug 8, 2017 at 12:37

Điều này nghiêm ngặt tuân theo các yêu cầu của bạn không sử dụng

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
2,
l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
3,
l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
4 nhưng cũng sử dụng thực hành Python tốt nhất bằng cách không phát minh lại bánh xe.Vijay

Tôi đề nghị có một cái nhìn trong thư viện Python cho

l = [64, 25, 12, 22, 11, 1,2,44,3,122, 23, 34]

for i in range(len(l)):
    for j in range(i + 1, len(l)):

        if l[i] > l[j]:
           l[i], l[j] = l[j], l[i]

print l
5 để xem nó hoạt động như thế nào. Heapsort là một thuật toán sắp xếp khá thú vị vì nó cho phép bạn 'sắp xếp' một luồng vô hạn, tức là bạn có thể nhanh chóng nhận được các mục nhỏ nhất hiện tại nhưng cũng thêm hiệu quả các mục mới vào dữ liệu được sắp xếp.2 silver badges9 bronze badges

new_list = [-23] 
1

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 8:10Mar 29, 2019 at 5:03

1

new_list = [-23] 
2

DuncanduncanJul 10, 2019 at 20:24

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

89K11 Huy hiệu vàng117 Huy hiệu bạc155 Huy hiệu ĐồngelPastor

Đây là một cái gì đó mà tôi đã cố gắng. (Chèn sắp xếp- không phải là cách tốt nhất để sắp xếp mà là công việc)11 gold badges51 silver badges79 bronze badges

2

Đã trả lời ngày 13 tháng 9 năm 2014 lúc 18:13

new_list = [-23] 
3

biệt danhSep 12, 2015 at 22:25

2

511 Huy hiệu bạc2 Huy hiệu đồng

Những công việc này!

Đã trả lời ngày 10 tháng 10 năm 2020 lúc 7:42Sep 8, 2016 at 21:33

new_list = [-23] 
5

Laplacelaplace

5666 Huy hiệu bạc15 Huy hiệu Đồng7 gold badges27 silver badges43 bronze badges

Từ: http://rosettacode.org/wiki/bubble_sort#pythonSep 18, 2016 at 12:48

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:20Moshe Slavin

Joran Beasleyjoran Beasley5 gold badges23 silver badges37 bronze badges

107K12 Huy hiệu vàng150 Huy hiệu bạc175 Huy hiệu đồng

Đây là một thuật toán sắp xếp không hiệu quả lắm :)

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:29Sep 7, 2018 at 18:57

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Hãy thử phân loại danh sách, char có mã ASCII, giống nhau có thể được sử dụng để sắp xếp danh sách char.

new_list = [-23] 
7

Đã trả lời ngày 8 tháng 8 năm 2017 lúc 12:37

Vijayvijay13 gold badges31 silver badges63 bronze badges

1512 Huy hiệu bạc9 Huy hiệu ĐồngOct 6, 2015 at 2:59

Đã trả lời ngày 29 tháng 3 năm 2019 lúc 5:03DataTx

Đã trả lời ngày 10 tháng 7 năm 2019 lúc 20:243 gold badges24 silver badges47 bronze badges

new_list = [-23] 
8

elpastorelpastorOct 16, 2019 at 11:03

7.95511 Huy hiệu vàng51 Huy hiệu bạc79 Huy hiệu đồng

new_list = [-23] 
9

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Phương pháp của tôi-Dec 12, 2019 at 17:31

0

Đã trả lời ngày 12 tháng 9 năm 2015 lúc 22:25

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
0

Đây là một ví dụ dễ đọc hơn về thuật toán sắp xếp chèn tại chỗ.Oct 10, 2020 at 8:08

new_list = [-23] 
4AlexNe

Đã trả lời ngày 8 tháng 9 năm 2016 lúc 21:335 silver badges22 bronze badges

Saeid

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
1

4.1077 Huy hiệu vàng27 Huy hiệu bạc43 Huy hiệu Đồng

Đã trả lời ngày 18 tháng 9 năm 2016 lúc 12:48Jan 21, 2021 at 20:06

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Moshe Slavinmoshe Slavin

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
2

5,0075 Huy hiệu vàng23 Huy hiệu bạc37 Huy hiệu Đồng

Bạn có thể làm điều đó dễ dàng bằng cách sử dụng hàm min ()3 gold badges14 silver badges37 bronze badges

new_list = [-23] 
6Jun 20, 2021 at 16:40

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
3

Đã trả lời ngày 7 tháng 9 năm 2018 lúc 18:57

Dung dịch

SANYASSHOct 21, 2021 at 12:12

7.74213 Huy hiệu vàng31 Huy hiệu bạc63 Huy hiệu ĐồngRana

Đã trả lời ngày 6 tháng 10 năm 2015 lúc 2:594 silver badges15 bronze badges

DataTxDatatx

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
4

1.7393 huy hiệu vàng24 Huy hiệu bạc47 Huy hiệu đồng

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
5

Đã trả lời ngày 16 tháng 10 năm 2019 lúc 11:03

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
6

Trao đổi các giá trị từ vị trí thứ nhất đến cuối danh sách, mã này lặp cho (n*n-1)/2 lần. Mỗi lần nó đẩy giá trị lớn hơn đến chỉ số lớn hơn bắt đầu từ không chỉ số bằng không.Jan 3 at 15:47

Hướng dẫn how to sort a list without using sort function python - cách sắp xếp danh sách mà không cần sử dụng chức năng sắp xếp python

Đã trả lời ngày 12 tháng 12 năm 2019 lúc 17:31

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
7

Vì sự phức tạp không quan trọng, tôi trình bày với bạn ... Bogosort:

Đã trả lời ngày 10 tháng 10 năm 2020 lúc 8:08

Alexnealexne

Đã trả lời ngày 15 tháng 8 năm 2012 lúc 5:22Aug 15, 2012 at 5:22

chọc chọcpoke

353K68 Huy hiệu vàng545 Huy hiệu bạc591 Huy hiệu Đồng68 gold badges545 silver badges591 bronze badges

4

data_list = [-5, -23, 5, 0, 23, -6, 23, 67]
new_list = []

while data_list:
    minimum = data_list[0]  # arbitrary number in list 
    for x in data_list: 
        if x < minimum:
            minimum = x
    new_list.append(minimum)
    data_list.remove(minimum)    

print (new_list)
8

Đã trả lời ngày 1 tháng 11 năm 2016 lúc 20:55Nov 1, 2016 at 20:55

1

Cách nhanh nhất để sắp xếp một danh sách trong Python là gì?

Sắp xếp nhanh chóng.Quicksort là một thuật toán cực kỳ hiệu quả sử dụng phương pháp phân chia và chinh phục để sắp xếp danh sách với càng ít thông qua càng tốt.Bằng cách chọn một phần tử trục (trong trường hợp này, phần tử đầu tiên), nó sẽ đặt mọi thứ thấp hơn phần tử đó ở bên trái và mọi thứ cao hơn bên phải.. Quicksort is an incredibly efficient algorithm that uses the divide and conquer methodology to sort the list with as little passes as possible. By choosing a pivot element (in this case, the first element), it will place everything lower than that element on the left side and everything higher on the right.

Bạn có thể sắp xếp một danh sách trong Python không?

Danh sách Python có một phương thức Danh sách tích hợp.Sort () sửa đổi danh sách tại chỗ.Ngoài ra còn có một hàm tích hợp được sắp xếp () xây dựng một danh sách được sắp xếp mới từ một điều đáng tin cậy.