shellsort

Màu nền
Font chữ
Font size
Chiều cao dòng

void shellsort(int b[100])

{

    int i, j, increment,temp;

    increment = 3;

    while(increment > 0)

    {

                    for(i=0; i<n;i++)

                    {

                                    j = i;

                                    temp=b[i];

                                    while((j >= increment)&&(b[j-increment] > temp))

                                    {

                                                    b[j] = b[j - increment];

                                                    j = j- increment;

                                    }

                                                b[j] = temp;

                                }

                                if(increment/2 != 0)

                                    increment = increment/2;

                                else if(increment == 1)

                                    increment = 0;

                                else

                                    increment = 1;

                }

}

Các bước tiến hành như sau:

Bước 1:  Chọn k khoảng cách h[1], h[2], ..., h[k]; i = 1;

Bước 2:  Phân chia dãy ban đầu thành các dãy con cách nhau h[i] khoảng  cách. Sắp xếp từng dãy con bằng phương pháp chèn trực tiếp;

Bước 3:   i = i+1; 

         Nếu  i > k : Dừng 

         Ngược lại : Lặp lại Bước 2.      

Bạn đang đọc truyện trên: Truyen2U.Pro