mô tả thuật toán và viết chương trình sắp xếp dãy số A gồm N phần tử(N được nhập từ bàn phím) sắp xếp theo thứ tự tăng dần
(pascal)
Chào cả nhóm, mình biết mình không giỏi lắm ở chuyện này, nhưng mình cũng biết mình có những người bạn thông minh ở đây. Cần một tay giúp đỡ gấp!
Các câu trả lời
Câu hỏi Tin học Lớp 8
Câu hỏi Lớp 8
Bạn muốn hỏi điều gì?
Chương trình sắp xếp dãy số A theo thứ tự tăng dần (Pascal):program SelectionSort;var A: array of Integer; N, i, j, min_idx, temp: Integer;begin Write('Nhap so phan tu N: '); Read(N); SetLength(A, N); for i := 0 to N-1 do begin Write('Nhap phan tu thu ', i+1, ': '); Read(A[i]); end; for i := 0 to N-2 do begin min_idx := i; for j := i+1 to N-1 do begin if A[j] < A[min_idx] then min_idx := j; end; if min_idx <> i then begin temp := A[min_idx]; A[min_idx] := A[i]; A[i] := temp; end; end; Write('Day so A sau khi sap xep tang dan: '); for i := 0 to N-1 do Write(A[i], ' ');end.
Thuật toán sắp xếp chọn (selection sort):- Bước 1: Lặp i từ 0 đến N-1- Bước 2: Gán giá trị nhỏ nhất ban đầu cho vị trí i là min_idx- Bước 3: Lặp j từ i+1 đến N- Bước 4: Nếu A[j] < A[min_idx], gán j cho min_idx- Bước 5: Nếu min_idx khác i, hoán đổi A[min_idx] và A[i]- Bước 6: Kết quả là dãy A được sắp xếp tăng dần