Hỏi về code sort 1 dãy số trong đó 1 số không đổi


Sắp xếp thứ tự dãy trên trong đó các số 11 giữ nguyên không đổi vị trí.Mình làm sai chỗ nào vậy ạ,chạy hoài không được TT Giúp mình với,cám ơn nhiều,

Sau vài giờ rồi chưa ai reply bạn nhận ra bạn sai chỗ nào chưa nè :grinning:

Không bạn ui :(( Ngu quá là ngu rồi TT

Không hiểu đề bài của bạn đưa ra luôn. Bạn cho mình VD của Input và output nào?

input : [56, 14, 11, 756, 34, 90, 11, 11, 65, 0, 11, 35]
output : [0, 14, 11, 34, 35, 56, 11, 11, 65, 90, 11, 756]
mấy số 11 nó hong đổi í bạn

Debugger để làm gì đâu bạn, chạy cái code của bạn với 3~4 phần từ đầu tiên của mảng là thấy chỗ sai rồi mà :stuck_out_tongue:

3 Likes

Vậy bạn không chạy được là do output ra sai hay máy báo lỗi nè :grinning:

1 Like

Có nhiều cách để làm, bạn có thể sử dụng một trong những thuật toán Sort phổ biển.
VD: Selection Sort, Bubble Sort…
Kèm theo thêm điều kiện: nếu tại vị trí đang xét có giá trị là 11 thì bỏ qua.
Hướng giải quyết bài toán mình thấy là như vậy đấy

1 Like

Trừ merge, radix, insertion, topo; còn lại thì sửa lại chỗ so sánh thôi.

1 Like

“1” dòng chăng :thinking:

p = [56, 14, 11, 756, 34, 90, 11, 11, 65, 0, 11, 35]
for a, b in zip([i for i in range(len(p)) if p[i] != 11], sorted([x for x in p if x != 11])): p[a] = b
print(p)
8 Likes

Không có lỗi cũng không k ra kết quả,chi đơn thuần là build hong đc gì cạ bạn à :^(

Híc mình không biết sai chỗ nào nên mới hỏi í :^( Nó sai thế nào nhỉ bạn ui

build không ra cả file exe hay sao á bạn.
Tiện cho mình hỏi tí là hàm len() trong python trả về cái gì ấy nhỉ :grin:.Mình không học python nên cũng không rõ về hàm len() :grinning:

1 Like

Len() trả về độ dài của chuỗi í bạn.Có bao nhiêu phần tử nó trả về chừng ấy.
Mình dùng sublime nên chỉ thấy là cltr + b thì nó được 1 khoảng trống không như ở dưới màn hình thôi TT

Mình cũng đang xét theo kiểu ấy nhưng không dùng sort mà bốc hai số rồi số nào lớn hơn để qua trái rồi cứ tuần tự như thế mà k hiểu sao k dc :^( thôi thử sort vậy

Cái đề ghi sort mà ko sort thế nào được :smiley:

1 Like

Không không ý mình là mình không dùng sort() í.Đề chỉ yêu cầu sắp xếp theo thứ tự tăng dần là ok à

Ơ thế index < lenght tức index lớn nhất bằng lenght - 1 đúng không ạ. Vậy thì index + 1 lớn nhất sẽ là lenght
Vậy lst[index + 1] có thể truy xuất đến lst[lenght] đúng không ta. :dizzy_face:

À… cái này là chọn thuật toán thôi.

IndexError ngay & luôn.

3 Likes

Ơ để bạn ấy tự ngẫm xem chứ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?