Thuật toán insertion-sort (code chạy từng bước)


#include <stdio.h>

int n = 10; // thay doi so luong phan tu o day
void printArray(int *a){
    for(int i=0;i<n;i++)
        printf("%2d ",a[i]);

}
void swap(int &a,int &b){
    int t = a;
    a = b;
    b = t;
}
void insertionSort(int *a) {
   for(int i=1; i<n; i++){
     for(int j=i; j>0; j--)
       if(a[j]<a[j-1])
        swap(a[j],a[j-1]);
     printf("B%d: ",i);
     printArray(a);
     printf("\n");
   }
}


int main(){
    // thay doi gia tri cua cac so de xem sap xep nhu the nao
    int *a =new int[n]{6,5,2,1,9,11,33,14,85,34};
    printArray(a);
    printf("\nMang sau khi sap xep:\n");
    insertionSort(a);

    return 0;
}

Bài liên quan

Bài liên quan