Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Anh b Ngoc
Xem chi tiết
Quỳnh Ly Vũ
Xem chi tiết
Minh Lệ
Xem chi tiết
Thanh An
18 tháng 7 2023 lúc 21:11

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)

Duy Long Trần
Xem chi tiết
k_o_t_en
Xem chi tiết
hà my
Xem chi tiết
hà my
Xem chi tiết
hà my
Xem chi tiết
Trương Huy Hoàng
13 tháng 12 2023 lúc 22:50

#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!

Minh Lệ
Xem chi tiết
Time line
19 tháng 8 2023 lúc 7:21

Tham khảo:

- Cải biển hàm phandoanLomuto thành him phandoanlomuto_tuple để sắp các cặp (Tên, điểm môn học) theo thành phần điểm môn học.

- Trong him phandoanLomuto_tuple đảo chiều phép so sánh trong câu lệnh if từ "ca" thành "y" để sắp thứ tự giảm dần, đặt tên hàm mới là phanhoanLamuto_tuple_down.

- Dùng hàm phanhoanLamuto_tuple_down để cải biên quícksort thành hàm quickSort_tuple_down.

Minh Lệ
Xem chi tiết
Thanh An
22 tháng 8 2023 lúc 0:33

Cả hai thuật toán sắp xếp nổi bọt và sắp xếp chèn đều đơn giản và dễ cài đặt. Tuy nhiên, thuật toán sắp xếp chèn có thể được coi là đơn giản hơn vì nó sử dụng ít phép so sánh hơn so với thuật toán sắp xếp nổi bọt.

Thuật toán sắp xếp chèn thực hiện việc chèn một phần tử vào một mảng đã được sắp xếp trước đó. Với mỗi phần tử trong mảng, nó sẽ so sánh nó với các phần tử đã được sắp xếp trước đó, và chèn phần tử đó vào vị trí thích hợp trong mảng. Điều này đòi hỏi ít phép so sánh hơn so với thuật toán sắp xếp nổi bọt, do đó thuật toán sắp xếp chèn có hiệu suất tốt hơn khi sắp xếp một mảng lớn.

Trong khi đó, thuật toán sắp xếp nổi bọt cần thực hiện nhiều phép so sánh hơn và có thể không hiệu quả khi sắp xếp mảng lớn. Nó hoạt động bằng cách so sánh các cặp phần tử liên tiếp trong mảng và đổi chỗ chúng nếu chúng không được sắp xếp đúng thứ tự. Vì vậy, trong nhiều trường hợp, thuật toán sắp xếp chèn được ưa chuộng hơn do hiệu quả và tính đơn giản của nó.