Hướng dẫn how do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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

3062 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong python?

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 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

88.6K11 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

5566 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

106K12 Huy hiệu vàng149 Huy hiệu bạc174 Huy hiệu đồng12 gold badges149 silver badges174 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong python?

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong python?

88.6K11 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 badges78 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

5566 Huy hiệu bạc15 Huy hiệu Đồng7 gold badges26 silver badges43 bronze badges

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

Hướng dẫn how do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong python?

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

Joran Beasleyjoran Beasley5 gold badges23 silver badges36 bronze badges

106K12 Huy hiệu vàng149 Huy hiệu bạc174 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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 badges62 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 badges46 bronze badges

new_list = [-23] 
8

elpastorelpastorOct 16, 2019 at 11:03

7,84511 Huy hiệu vàng51 Huy hiệu bạc78 Huy hiệu đồng

new_list = [-23] 
9

Hướng dẫn how do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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:334 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àng26 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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ạc36 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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.66213 Huy hiệu vàng31 Huy hiệu bạc62 Huy hiệu ĐồngRana

Đã trả lời ngày 6 tháng 10 năm 2015 lúc 2:594 silver badges14 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.7193 huy hiệu vàng24 Huy hiệu bạc46 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 do you sort without sorting in python? - làm thế nào để bạn sắp xếp mà không cần phân loại trong 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

351K67 Huy hiệu vàng540 Huy hiệu bạc586 Huy hiệu Đồng67 gold badges540 silver badges586 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

Làm thế nào để bạn sắp xếp một mảng mà không cần sử dụng thuật toán sắp xếp?

Thay vì phương thức sắp xếp được xác định trước () Phương thức, cũng có một số phương thức khác có thể được sử dụng để sắp xếp các mảng ...
Sắp xếp lựa chọn ..
Sắp xếp chèn..
Sắp xếp bong bóng ..

Làm cách nào để sắp xếp một danh sách bằng thủ công trong Python?

Sử dụng phương thức Danh sách Python () để sắp xếp danh sách tại chỗ.Phương thức sort () sắp xếp các phần tử chuỗi theo thứ tự bảng chữ cái và sắp xếp các phần tử số từ nhỏ nhất đến lớn nhất.Sử dụng sắp xếp (đảo ngược = true) để đảo ngược thứ tự sắp xếp mặc định.. The sort() method sorts the string elements in alphabetical order and sorts the numeric elements from smallest to largest. Use the sort(reverse=True) to reverse the default sort order.

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.

Cái nào được sắp xếp hoặc sắp xếp tốt hơn trong Python?

Sự khác biệt chính giữa sắp xếp và được sắp xếp trong Python là hàm sắp xếp không trả về không có gì và thay đổi chuỗi gốc, trong khi hàm Sắp xếp () tạo ra một loại chuỗi mới chứa phiên bản được sắp xếp của chuỗi đã cho.sort function returns nothing and makes changes to the original sequence, while the sorted () function creates a new sequence type containing a sorted version of the given sequence.