Thuật toán sắp xếp bằng đổi chỗ cho dãy số A theo trật tự tăng dần dừng lại khi nào?
A. Khi M =1 và không còn sự đổi chỗ
B. Khi số lớn nhất trôi về cuối dãy
C. Khi ai > ai + 1
D. Tất cả các phương án
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
#include <bits/stdc++.h>
using namespace std;
long long a[8],n,i,j;
int main()
{
n=8;
for (i=1; i<=n; i++) cin>>a[i];
for (i=1; i<=n-1; i++)
for (j=i+1; j<=n; j++)
if (a[i]<a[j]) swap(a[i],a[j]);
for (i=1; i<=n; i++) cout<<a[i]<<" ";
return 0;
}
đổi vị trí số 3 và số 1 được 1;3;7;9;5
đổi tiếp vị trí số 5 va số 7 được 1;3;5;9;7
đổi tiêp vị trí số 7 và số 9 được 1;3;5;7;9
Khi đó ta có dãy số được sắp xếp theo thứ tự tăng dần
Chọn D.
+ Khi ta đổi chỗ 2 giá trị đứng đầu tiên và cuối cùng cho nhau thì tần số của mỗi giá trị không đổi nên giá trị có tần số lớn nhất không đổi. Do đó; mốt không đổi.
+ Sau khi sắp xếp lại các số liệu (cụ thể là đổ chỗ số đầu tiên và cuối cùng cho nhau) thì ta vẫn được dãy số liệu như ban đầu nên số trung vị không đổi.
+ Tương tự; phương sai không đổi.
THAM KHẢO!
1.Thuật toán sắp xếp chèn (Insertion Sort):
def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = insertion_sort(A)
print("Dãy A sau khi sắp xếp chèn:", sorted_A)
2. Thuật toán sắp xếp chọn (Selection Sort):
def selection_sort(arr):
for i in range(len(arr)):
min_idx = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = selection_sort(A)
print("Dãy A sau khi sắp xếp chọn:", sorted_A)
3.Thuật toán sắp xếp nổi bọt (Bubble Sort):
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
for j in range(n - 1 - i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
A = [5, 8, 1, 0, 10, 4, 3]
sorted_A = bubble_sort(A)
print("Dãy A sau khi sắp xếp nổi bọt:", sorted_A)