selection sort,insertion sort,Bubble Sort,Heap Sort,Quick Sort,Merge Sort
GV: Phạm Ngọc Nam Bộ môn KHMT – Khoa CNTT – Trường ĐH Tôn Đức Thắng 1 1 Selection Sort Insertion Sort Bubble Sort Heap Sort Quick Sort Merge Sort 2 2 3 Ý tưởng: Chọn phần tử nhỏ nhất trong N phần tử ban đầu, đưa phần tử này về vị trí đầu dãy. Sau đó không quan tâm đến nó nữa, dãy giảm xuống N-1 phần tử… tương tự như trên bắt đầu tại vị trí thứ 2 cho đến khi dãy hiện hành chỉ còn 1 phần tử. Các bước thực hiện như sau: B1: i = 0 B2: tìm phần tử a[min] nhỏ nhất trong dãy hiện hành từ a[i] đến a[n-1] B3: hoán vị a[min] với a[i] B4: nếu i < n-1 thì i = i +1 và lặp lại B2 ngược lại dừng thuật toán. 3 4 Ví dụ cho dãy số: 5 3 2 4 1 8 6 7 5 3 2 4 1 8 6 7 i= 0 1 3 2 4 5 8 6 7 i= 1 1 2 3 4 5 8 6 7 i= 2 4 5 Ví dụ cho dãy số: 5 3 2 4 1 8 6 7 1 3 2 4 5 8 6 7 i= 4 1 3 2 4 5 8 6 7 i= 3 1 3 2 4 5 8 6 7 i= 5 5 6 Ví dụ cho dãy số: 5 3 2 4 1 8 6 7 1 3 2 4 5 8 8 7 i= 6 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 6 7 7 8 8 Void SelectionSort(int a[], int n) { int min; for(int i = 0; i < n-1; i++) { min = i; for(int j= i+1; j < n ; j++) { if(a[j] < a[min]) min = j; } if(a[min] < a[i]) HoanVi(a[min],a[i]); } } 9 9 10 10 . CNTT – Trường ĐH Tôn Đức Thắng 1 1 Selection Sort Insertion Sort Bubble Sort Heap Sort Quick Sort Merge Sort 2 2 3 Ý tưởng: Chọn phần tử nhỏ nhất. 2 4 5 8 8 7 i= 6 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 6 7 7 8 8 Void SelectionSort(int a[], int n) { int min; for(int i = 0; i < n-1; i++) { min = i; for(int