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è
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à
Vậy bạn không chạy được là do output ra sai hay máy báo lỗi nè
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
Trừ merge, radix, insertion, topo; còn lại thì sửa lại chỗ so sánh thôi.
“1” dòng chăng
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)
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ỉ .Mình không học python nên cũng không rõ về hàm len()
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
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.
À… cái này là chọn thuật toán thôi.
IndexError
ngay & luôn.
Ơ để bạn ấy tự ngẫm xem chứ.