/*thuật toán bubble sort
Ý tưởng:
Xuất phát từ cuối dãy, đổi chỗ các cặp phần tử kế cận để đưa phần tử nhỏ hơn trong cặp phần tử đó về vị trí đúng đầu dãy hiện hành, sau đó sẽ không xét đến nó ở bước tiếp theo, do vậy ở lần xử lý thứ i sẽ có vị trí đầu dãy là i.
Lặp lại xử lý trên cho đến khi không còn cặp phần tử nào để xét.
Bước 1 : i = 0; // lần xử lý đầu tiên
Bước 2 : j = N-1;//Duyệt từ cuối dãy ngược về vị trí i
Trong khi (j > i) thực hiện:
Nếu a[j]<a[j-1]
Doicho(a[j],a[j-1]);
j = j-1;
Bước 3 : i = i+1; // lần xử lý kế tiếp
Nếu i =N: Hết dãy. Dừng
Ngược lại : Lặp lại Bước 2.
*/
#include<iostream>
using namespace std;
void xep(int a[], int n)
{
int i, j, t;
for (i = 0; i < n - 1;i++)
for (j = n - 1; j>i;j--)
if (a[j] < a[j - 1])
{
t = a[j]; a[j] = a[j - 1]; a[j - 1] = t;
}
}
void main()
{
int a[10] = { 3, 4, 5, 2, 8, 7, 6, 1, 9, 10 };
xep(a, 10);
for (int i = 0; i < 10; i++) cout << " " << a[i];
}
Saturday, January 24, 2015
thuật toán bubble sort
Related Posts:
thuật toán insertion sort - chèn trực tiếp thuật toán insertion sort - chèn trực tiếp Giả sử có một dãy a0 , a1 ,... ,an-1 trong đó i phần tử đầu tiên a0 , a1 ,... ,ai-1 đã có thứ tự. Tìm cách chèn phần tử ai vào vị trí thích hợp của đoạn đã được sắp để có dãy… Read More
thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp thuật toán tìm kiếm tuyến tính cải tiến trên dãy đã sắp xếp #include<iostream> using namespace std; int tim(int *a,int n,int x) { int i=0; while(a[i]!=x && i<n) i++; if(i==n) return 0; return i; } int t… Read More
thuật toán binary insertion sort - chèn nhị phân thuật toán binary insertion sort - chèn nhị phân void BInsertionSort(int a[],int n ) { int l,r,m,i; int x;//lưu giá trị a[i] tránh bị ghi đè khi dời chỗ các phần tử. for(int i=1 ; i<n ; i++) { x = a… Read More
thuật toán shell sort - cải tiến của chèn trực tiếp thuật toán shell sort - cải tiến của chèn trực tiếp shell sort là Cải tiến của phương pháp chèn trực tiếp Ý tưởng: Phân hoạch dãy thành các dãy con Sắp xếp các dãy con theo phương pháp chèn trực tiếp Dùng phương pháp… Read More
sắp xếp từ điển trong lập trình C++ - bài tập đồ án CTDL & GTsắp xếp từ điển trong lạp trình C++ - bài tập đồ án CTDL & GT sắp xếp từ điển trong lập trình c/c++,tạo 1 mảng 1 chiều chứa các từ tiếng anh lấy từ file http://blackberryvietnam.net/threads/du-lieu-tu-dien-cho-… Read More