hãy trình bày diễn biến từng bước của thuật toán sắp xếp chọn dần áp dụng cho dãy số 11 70 52 20 39 18 để được dãy số tăng dần
Cho dãy số sau 10,2,5,12,20,6,8,15,18 A,sắp xếp dãy số sau theo thứ tự tăng dần B,hãy liệt kê các bước tìm kiếm số 15 trong dãy số đã sắp xếp theo thuật toán tìm kiếm nhị phân Giúp elm Vs ạ , mai em nộp r
Cho dãy số sau 10,2,5,12,20,6,8,15,18 A,sắp xếp dãy số sau theo thứ tự tăng dần B,hãy liệt kê các bước tìm kiếm số 15 trong dãy số đã sắp xếp theo thuật toán tìm kiếm nhị phân
Giúp elm Vs ạ , mai em nộp r
Cho dãy số sau 10,2,5,12,20,6,8,15,18 A,sắp xếp dãy số sau theo thứ tự tăng dần B,hãy liệt kê các bước tìm kiếm số 15 trong dãy số đã sắp xếp theo thuật toán tìm kiếm nhị phân
Giúp em Vs ạ , mai em nộp r
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll a[]={10,2,5,12,20,6,8,15,18}; //mảng đã cho
ll n=sizeof(a)/sizeof(a[0]); //độ dài mảng
sort(a,a+n); //sắp xếp mảng
//Thuật toán tìm kiếm nhị phân
ll l=0, r=n-1;
while(l<=r) {
ll mid=(l+r)/2; //Tìm phần tử giữa left và right
if(a[mid]<15) l=mid+1; //Vì từ đoạn [0,mid] thì phần tử nhỏ hơn 15 nên ta duyệt từ khoảng (mid,r]
else r=mid-1; //vì thấy nên rút r để thu hẹp phạm vi
}
cout << l+1; //in ra kq (vì bắt đầu từ 0 đến n-1 nên phải tăng thêm để ra vị trí đúng)
}
(Bạn có thể dựa vào code mình để rút ra các bước)
Chúc bạn học tốt!
Cho dãy A= [5, 8, 1, 0, 10, 4, 3]. Viết các chương trình sắp xếp dãy A theo thứ tự tăng dần theo các thuật toán sắp xếp chèn, sắp xếp chọn và sắp xếp nổi bọt.
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)
Cho Dãy A gồmN=8.Dãy A gồm các số nguyênlà : 9 ,11, 3, 25, 1, 18,20, 2.Hãy sử dụng thuật toán sắp xếp tráo đổi( sắp xếp dãy A thành dãy không tăng)
Cách làm: Làm theo thứ tự các bước:
1.Xác định bài toán
2.Ý tưởng
3.Thuật toán( làm 1 trong 2 cách:Liệt kê và sơ đồ khối)
4.Ápdụng làm dãy số trên theo các lần duyệt như trong sách giáo khoa
#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;
}
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)
Dựa trên minh họa diễn biến từng bước của thuật toán sắp xếp nổi bọt được trình bày như ở Hình 1, em hãy nêu tóm tắt ý tưởng của thuật toán này
Câu 36. Sử dụng thuật toán sắp xếp nổi bọt, hãy nêu các bước để sắp xếp các số 3, 8, 4, 10 theo thứ tự tăng dần?
Trình bày giải thuật sắp xếp phân đoạn (Quick Sort) để sắp xếp dãy số nguyên a1, a2, ..., an thành dãy không tăng.
số tự chọn ạ
#include <bits/stdc++.h>
using namespace std;
long long a[10000],n,i;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
sort(a+1,a+n+1);
for (i=n; i>=1; i--) cout<<a[i]<<" ";
return 0;
}