*Tìm thuật toán với bài toán sắp xếp số nguyên dương giảm dần Giúp em với
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.
Bài 1:
#include <bits/stdc++.h>
using namespace std;
long long a[100],n,i,j,tam;
int main()
{
cin>>n;
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;
}
def binary_search(arr, x):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
right = mid - 1
else:
left = mid + 1
return -1
# Sử dụng hàm để tìm kiếm giá trị 5 trong dãy sắp xếp giảm dần [9, 8, 6, 5, 3, 1]
arr = [9, 8, 6, 5, 3, 1]
x = 5
result = binary_search(arr, x)
if result != -1:
print("Element is present at index", str(result))
else:
print("Element is not present in array")
1:
-Bước 1: Nhập n và nhập dãy số, nhập k
-Bước 2: dem←0; i←1;
-Bước 3: Nếu a[i]=k thì dem←dem+1;
-Bước 4: i←i+1;
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Xuất dem
-Bước 7: Kết thúc
- Gán i = 0
- Gán j = i + 1 và min = A[i]
- Nếu j < n:
+ Nếu A[j] < A[min] thì min = j
+ j = j + 1
+ Quay lại bước 3
- Đổi chỗ A[min] và A[i]
- Nếu i < n – 1:
+ Đúng thì i = i + 1 và quay lại bước 2
+ Sai thì dừng lại
Input: N và dãy số nguyên a1, a2,..., aN
Ouput: dãy số sắp xếp theo thứ tự tăng dần
B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;
B2: M ← N;
B3: Nếu M<2 thì in dãy đã sắp xếp rồi kết thúc;
B4. M ← M – 1; i ← 0;
B5: i ← i + 1;
B6: Nếu i > M thì quay lại bước 3;
B7. Nếu ai > ai+1 thì tráo đổi cho nhau;
B8: Quay lại bước 5;
Bước 1: Nhập dãy số từ a[1] tới a[3]
Bước 2: i←1; j←i+1
Bước 3: Nếu a[i]<a[j] thì đổi chỗ a[i] và a[j];
Bước 4: i←i+1; j←j+1
Bước 5: Nếu (i<=n-1) và (j<=n) thì quay lại bước 3
Bước 6: Xuất dãy số sau khi xếp
Bước 7: Kết thúc
#include <bits/stdc++.h>
using namespace std;
const long long maxn=1e6+10;
long long a[maxn],i,n;
int main()
{
freopen("sxso.inp","r",stdin);
freopen("sxso.out","w",stdout);
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;
}