Thứ Hai, 2 tháng 1, 2017

Thuật toán sắp xếp Nỗi Bọt - Thuật toán sắp xếp Bubble Sort

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <iostream>
using namespace std;

#define MAX 100

// MẢNG 1 CHIỀU 
// 1. HÀM NHẬP SỐ PHẦN TỬ
void NhapN(int &N)
{
 do
 {
  cout << "Moi ban nhap so phan tu cua mang N = ";
  cin >> N;

  // 0 < N <= MAX
  // Điều kiện phải ngược lại 
  if (N <= 0 || N > MAX)
   cout << "Nhap sai vui long nhap la 0 < N <= " << MAX << "\n";

 } while (N <= 0 || N > MAX);
}

// 2. HÀM NHẬP MẢNG
void NhapMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << "A[" << i << "]= ";
  cin >> A[i];
 }
}

// 3. HÀM XUẤT MẢNG
void XuatMang(int A[], int N)
{
 for (int i = 0; i < N; i++)
 {
  cout << A[i] << "\t";
 }
}

// Hoán vị 2 số
void Swap(int &a, int &b)
{
 int t = a; a = b; b = t;
}

void BubbleSort(int A[], int N)
{
 int i = 0, j = 0;
 for (i = 0; i < N - 1; i++)
  for (j = N - 1; j > i; j--)
   if (A[j] < A[j - 1])// nếu sai vị trí thì đổi chỗ     
    Swap(A[j], A[j - 1]);
}


int main()
{

 int N = 0;
 NhapN(N);

 int A[MAX];
 NhapMang(A, N);
 cout << "MANG BAN DAU\n";
 XuatMang(A, N);
 cout << "\n";

 BubbleSort(A, N);
 cout << "Mang sau khi sap xep : \n";
 XuatMang(A, N);
 cout << "\n";

 return 0;
}

Không có nhận xét nào:

Đăng nhận xét