Thứ Ba, 15 tháng 12, 2015

Chương trình tập hợp các bài sắp xếp và các kiểu sắp xếp theo cấu trúc.

 CODE NÀY CHẠY CHUẨN TRÊN Visual Studio, NẾU CHẠY TRÊN Borland C THÌ SẼ PHẢI FIX MỘT VÀI CHỖ !
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

#define MAX 100

typedef struct nv
{
    int ms;
    char ten[20];
    float luong;
};

void nhapn(int &n)
{
    do
    {
        printf("\nNhap so NV: ");
        scanf("%d", &n);
        if (n < 1)    printf("\nNhap sai. Nhap lai.");
    } while (n < 1);
}

void nhap(nv &a)
{
    printf("\nNhap ma so: ");
    scanf("%d",&a.ms);
    fflush(stdin);
    printf("\nNhap ten: ");
    gets(a.ten);
    fflush(stdin);
    printf("\nNhap luong: ");
    scanf("%f", &a.luong);
    fflush(stdin);
}

void xuat(nv &a)
{
    printf("\nMS: %d", a.ms);
    printf("\nTen: %s", a.ten);
    printf("\nLuong: %.3f", a.luong);
}

void nhapnv(nv a[], int n)
{
    printf("\n\n---------------HAY NHAP CAC NHAN VIEN---------------");
    for (int i = 0; i < n; i++)
        nhap(a[i]);
}

void xuatnv(nv a[], int n)
{
    for (int i = 0; i < n; i++)
    {
        xuat(a[i]);
        printf("\n");
    }
}

void swap(nv &a, nv &b)
{
    nv c = a;
    a = b;
    b = c;
}

void InterchangeSortUpMS(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
    if (a[i].ms > a[j].ms)
        swap(a[i], a[j]);
}

void InterchangeSortDownMS(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
    if (a[i].ms < a[j].ms)
        swap(a[i], a[j]);
}

void InterchangeSortUpTEN(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
    if (strcmp(a[i].ten,a[j].ten)==1)
        swap(a[i], a[j]);
}

void InterchangeSortDownTEN(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = i + 1; j < n; j++)
    if (strcmp(a[i].ten,a[j].ten)==-1)
        swap(a[i], a[j]);
}

void BubbleSortUpMS(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = n-1; j >i; j--)
    if (a[j].ms > a[j-1].ms)
        swap(a[j-1], a[j]);
}

void BubbleSortDownMS(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = n - 1; j >i; j--)
    if (a[j].ms < a[j - 1].ms)
        swap(a[j], a[j - 1]);
}

void BubbleSortDownTEN(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = n - 1; j >i; j--)
    if (strcmp(a[j].ten, a[j - 1].ten)==1)
        swap(a[j - 1], a[j]);
}

void BubbleSortUpTEN(nv a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    for (int j = n - 1; j >i; j--)
    if (strcmp(a[j - 1].ten,a[j].ten)==1)
        swap(a[j], a[j - 1]);
}

void SelectionSortUpMS(nv a[], int n)
{
    int i;
    for (i = 0; i < n - 1; i++)
    {
        int vtmin = i;
        for (int j = i + 1; j < n; j++)
        if (a[j].ms < a[vtmin].ms)
            vtmin = j;
        swap(a[vtmin], a[i]);
    }
}

void SelectionSortDownMS(nv a[], int n)
{
    int i;
    for (i = 0; i < n - 1; i++)
    {
        int vtmax = i;
        for (int j = i + 1; j < n; j++)
        if (a[j].ms > a[vtmax].ms)
            vtmax = j;
        swap(a[vtmax], a[i]);
    }
}

void SelectionSortUpTEN(nv a[], int n)
{
    int i;
    for (i = 0; i < n - 1; i++)
    {
        int vtmin = i;
        for (int j = i + 1; j < n; j++)
        if (strcmp(a[j].ten, a[vtmin].ten)==-1)
            vtmin = j;
        swap(a[vtmin], a[i]);
    }
}

void SelectionSortDownTEN(nv a[], int n)
{
    int i;
    for (i = 0; i < n - 1; i++)
    {
        int vtmin = i;
        for (int j = i + 1; j < n; j++)
        if (strcmp(a[j].ten, a[vtmin].ten) == 1)
            vtmin = j;
        swap(a[vtmin], a[i]);
    }
}

void InsertionSortUpMS(nv a[], int n)
{
    int pos;
    nv x;
    for (int i = 1; i < n; i++)
    {
        x = a[i];
        pos = i - 1;
        while (pos >= 0 && a[pos].ms>x.ms)
        {
            a[pos + 1] = a[pos];
            pos--;
        }
        a[pos + 1] = x;
    }
}

void InsertionSortDownMS(nv a[], int n)
{
    int pos;
    nv x;
    for (int i = 1; i < n; i++)
    {
        x = a[i];
        pos = i - 1;
        while (pos >= 0 && a[pos].ms<x.ms)
        {
            a[pos + 1] = a[pos];
            pos--;
        }
        a[pos + 1] = x;
    }
}

void InsertionSortUpTEN(nv a[], int n)
{
    int pos;
    nv x;
    for (int i = 1; i < n; i++)
    {
        x = a[i];
        pos = i - 1;
        while (pos >= 0 && strcmp(a[pos].ten,x.ten)==1)
        {
            a[pos + 1] = a[pos];
            pos--;
        }
        a[pos + 1] = x;
    }
}

void InsertionSortDownTEN(nv a[], int n)
{
    int pos;
    nv x;
    for (int i = 1; i < n; i++)
    {
        x = a[i];
        pos = i - 1;
        while (pos >= 0 && strcmp(a[pos].ten, x.ten) == -1)
        {
            a[pos + 1] = a[pos];
            pos--;
        }
        a[pos + 1] = x;
    }
}

void ShellSortUpMS(nv a[], int n, int h[], int k)
{
    int count = 0;
    int step, i, pos, len;
    nv x;
    for (step = 0; step < k; step++)
    {
        len = h[step];
        for (i = len; i<n; i++)
        {
            x = a[i];
            pos = i - len;
            while ((x.ms < a[pos].ms) && (pos >= 0))
            {
                a[pos + len] = a[pos];
                pos = pos - len;
                count++;
            }
            a[pos + len] = x;
        }

    }
}

void ShellSortDownMS(nv a[], int n, int h[], int k)
{
    int count = 0;
    int step, i, pos, len;
    nv x;
    for (step = 0; step < k; step++)
    {
        len = h[step];
        for (i = len; i<n; i++)
        {
            x = a[i];
            pos = i - len;
            while ((x.ms > a[pos].ms) && (pos >= 0))
            {
                a[pos + len] = a[pos];
                pos = pos - len;
                count++;
            }
            a[pos + len] = x;
        }

    }
}

void ShellSortUpTEN(nv a[], int n, int h[], int k)
{
    int count = 0;
    int step, i, pos, len;
    nv x;
    for (step = 0; step < k; step++)
    {
        len = h[step];
        for (i = len; i<n; i++)
        {
            x = a[i];
            pos = i - len;
            while (strcmp(x.ten , a[pos].ten)==-1 && (pos >= 0))
            {
                a[pos + len] = a[pos];
                pos = pos - len;
                count++;
            }
            a[pos + len] = x;
        }

    }
}

void ShellSortDownTEN(nv a[], int n, int h[], int k)
{
    int count = 0;
    int step, i, pos, len;
    nv x;
    for (step = 0; step < k; step++)
    {
        len = h[step];
        for (i = len; i<n; i++)
        {
            x = a[i];
            pos = i - len;
            while (strcmp(x.ten, a[pos].ten) == 1 && (pos >= 0))
            {
                a[pos + len] = a[pos];
                pos = pos - len;
                count++;
            }
            a[pos + len] = x;
        }

    }
}

void QuickSortUpMS(nv a[], int l, int r)
{
    if (l >= r) return;
    int i = l;
    int j = r;
    nv x = a[(l + r) / 2];//x=A[random(l-r)]
    while (i <= j)
    {
        while (a[i].ms<x.ms) i++;
        while (a[j].ms>x.ms) j--;
        if (i <= j)
        {
            swap(a[i], a[j]);
            i++; j--;
        }
    }
    QuickSortUpMS(a, l, j);
    QuickSortUpMS(a, i, r);

}

void QuickSortDownMS(nv a[], int l, int r)
{
    if (l >= r) return;
    int i = l;
    int j = r;
    nv x = a[(l + r) / 2];//x=A[random(l-r)]
    while (i <= j)
    {
        while (a[i].ms>x.ms) i++;
        while (a[j].ms<x.ms) j--;
        if (i <= j)
        {
            swap(a[i], a[j]);
            i++; j--;
        }
    }
    QuickSortDownMS(a, l, j);
    QuickSortDownMS(a, i, r);

}

void QuickSortUpTEN(nv a[], int l, int r)
{
    if (l >= r) return;
    int i = l;
    int j = r;
    nv x = a[(l + r) / 2];//x=A[random(l-r)]
    while (i <= j)
    {
        while (strcmp(a[i].ten,x.ten)==-1) i++;
        while (strcmp(a[j].ten,x.ten)==1) j--;
        if (i <= j)
        {
            swap(a[i], a[j]);
            i++; j--;
        }
    }
    QuickSortUpTEN(a, l, j);
    QuickSortUpTEN(a, i, r);

}

void QuickSortDownTEN(nv a[], int l, int r)
{
    if (l >= r) return;
    int i = l;
    int j = r;
    nv x = a[(l + r) / 2];//x=A[random(l-r)]
    while (i <= j)
    {
        while (strcmp(a[i].ten,x.ten)==1) i++;
        while (strcmp(a[j].ten,x.ten)==-1) j--;
        if (i <= j)
        {
            swap(a[i], a[j]);
            i++; j--;
        }
    }
    QuickSortDownTEN(a, l, j);
    QuickSortDownTEN(a, i, r);

}

void MergeSortUpMS(nv a[], int n)
{
    int i, j, k, low1, up1, low2, up2, size;
    nv dstam[MAX];
    size = 1;
    while (size <n)
    {
        low1 = 0;
        k = 0;
        while (low1 + size < n)
        {
            low2 = low1 + size;
            up1 = low2 - 1;
            up2 = (low2 + size - 1 < n) ? (low2 + size - 1) : (n - 1);
            for (i = low1, j = low2; i <= up1 && j <= up2; k++)
            if (a[i].ms <= a[j].ms)    dstam[k] = a[i++];
            else                    dstam[k] = a[j++];
            for (; i <= up1; k++)    dstam[k] = a[i++];
            for (; j <= up2; k++)  dstam[k] = a[j++];
            low1 = up2 + 1;
        }
        for (i = low1; k<n; i++)        dstam[k++] = a[i];
        for (i = 0; i<n; i++)     a[i] = dstam[i];
        size *= 2;
    }
}

void MergeSortDownMS(nv a[], int n)
{
    int i, j, k, low1, up1, low2, up2, size;
    nv dstam[MAX];
    size = 1;
    while (size <n)
    {
        low1 = 0;
        k = 0;
        while (low1 + size < n)
        {
            low2 = low1 + size;
            up1 = low2 - 1;
            up2 = (low2 + size - 1 < n) ? (low2 + size - 1) : (n - 1);
            for (i = low1, j = low2; i <= up1 && j <= up2; k++)
            if (a[i].ms >= a[j].ms)    dstam[k] = a[i++];
            else                    dstam[k] = a[j++];
            for (; i <= up1; k++)    dstam[k] = a[i++];
            for (; j <= up2; k++)  dstam[k] = a[j++];
            low1 = up2 + 1;
        }
        for (i = low1; k<n; i++)        dstam[k++] = a[i];
        for (i = 0; i<n; i++)     a[i] = dstam[i];
        size *= 2;
    }
}

void MergeSortUpTEN(nv a[], int n)
{
    int i, j, k, low1, up1, low2, up2, size;
    nv dstam[MAX];
    size = 1;
    while (size <n)
    {
        low1 = 0;
        k = 0;
        while (low1 + size < n)
        {
            low2 = low1 + size;
            up1 = low2 - 1;
            up2 = (low2 + size - 1 < n) ? (low2 + size - 1) : (n - 1);
            for (i = low1, j = low2; i <= up1 && j <= up2; k++)
            if (strcmp(a[i].ten, a[j].ten) == -1 || strcmp(a[i].ten, a[j].ten) == 0)   
                dstam[k] = a[i++];
            else                    dstam[k] = a[j++];
            for (; i <= up1; k++)    dstam[k] = a[i++];
            for (; j <= up2; k++)  dstam[k] = a[j++];
            low1 = up2 + 1;
        }
        for (i = low1; k<n; i++)        dstam[k++] = a[i];
        for (i = 0; i<n; i++)     a[i] = dstam[i];
        size *= 2;
    }
}

void MergeSortDownTEN(nv a[], int n)
{
    int i, j, k, low1, up1, low2, up2, size;
    nv dstam[MAX];
    size = 1;
    while (size <n)
    {
        low1 = 0;
        k = 0;
        while (low1 + size < n)
        {
            low2 = low1 + size;
            up1 = low2 - 1;
            up2 = (low2 + size - 1 < n) ? (low2 + size - 1) : (n - 1);
            for (i = low1, j = low2; i <= up1 && j <= up2; k++)
            if (strcmp(a[i].ten, a[j].ten) == 1 || strcmp(a[i].ten, a[j].ten) == 0)    dstam[k] = a[i++];
            else                    dstam[k] = a[j++];
            for (; i <= up1; k++)    dstam[k] = a[i++];
            for (; j <= up2; k++)  dstam[k] = a[j++];
            low1 = up2 + 1;
        }
        for (i = low1; k<n; i++)        dstam[k++] = a[i];
        for (i = 0; i<n; i++)     a[i] = dstam[i];
        size *= 2;
    }
}




void main(void)
{
    int n, chon, k = 3;
    int h[] = { 5, 3, 1 };
    nv a[MAX];
    nhapn(n);
    nhapnv(a, n);
    puts("Ban da nhap thanh cong Enter de tiep tuc!");
    getch();
back:
    system("cls");
    puts("---------------HAY CHON 1 TRONG CAC CONG VIEC SAU---------------");
    puts("1. Xuat danh sach cac nhan vien vua moi nhap.");
    puts("2. Sap xep danh sach tang dan theo Ma So - Interchange Sort.");
    puts("3. Sap xep danh sach giam dan theo Ma So - Interchange Sort.");
    puts("4. Sap xep danh sach tang dan theo Ten - Interchange Sort.");
    puts("5. Sap xep danh sach giam dan theo Ten - Interchange Sort.");
    puts("6. Sap xep danh sach giam dan theo Ma So - Bubble Sort.");
    puts("7. Sap xep danh sach tang dan theo Ma So - Bubble Sort.");
    puts("8. Sap xep danh sach tang dan theo Ten - Bubblee Sort.");
    puts("9. Sap xep danh sach giam dan theo Ten - Bubble Sort.");
    puts("10. Sap xep danh sach tang dan theo Ma so - Selection Sort.");
    puts("11. Sap xep danh sach giam dan theo Ma so - Selection Sort.");
    puts("12. Sap xep danh sach tang dan theo Ten - Selection Sort.");
    puts("13. Sap xep danh sach giam dan theo Ten - Selection Sort.");
    puts("14. Sap xep danh sach tang dan theo Ma so - Insertion Sort.");
    puts("15. Sap xep danh sach giam dan theo Ma so - Insertion Sort.");
    puts("16. Sap xep danh sach tang dan theo Ten - Insertion Sort.");
    puts("17. Sap xep danh sach giam dan theo Ten - Insertion Sort.");
    puts("18. Sap xep danh sach tang dan theo Ma so - Shell Sort.");
    puts("19. Sap xep danh sach giam dan theo Ma so - Shell Sort.");
    puts("20. Sap xep danh sach tang dan theo TEN - Shell Sort.");
    puts("21. Sap xep danh sach giam dan theo TEN - Shell Sort.");
    puts("22. Sap xep danh sach tang dan theo Ma so - Quick Sort.");
    puts("23. Sap xep danh sach giam dan theo Ma so - Quick Sort.");
    puts("24. Sap xep danh sach tang dan theo Ten - Quick Sort.");
    puts("25. Sap xep danh sach giam dan theo Ten - Quick Sort.");
    puts("26. Sap xep danh sach tang dan theo Ma so - Merge Sort.");
    puts("27. Sap xep danh sach giam dan theo Ma so - Merge Sort.");
    puts("28. Sap xep danh sach tang dan theo Ten - Merge Sort.");
    puts("29. Sap xep danh sach giam dan theo Ten - Merge Sort.");
    puts("0. Exit");
    printf("\nNhap 1 so: ");
    scanf("%d", &chon);
    switch (chon)
    {
    case 1:
        system("cls");
            puts("---XUAT DANH SACH NHAN VIEN---");
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 2:
        system("cls");
        puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - INTERCHANGE SORT---");
            InterchangeSortUpMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 3:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - INTERCHANGE SORT---");
            InterchangeSortDownMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 4:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - INTERCHANGE SORT---");
            InterchangeSortUpTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 5:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - INTERCHANGE SORT---");
            InterchangeSortDownTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 6:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - BUBBLE SORT---");
            BubbleSortUpMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 7:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - BUBBLE SORT---");
            BubbleSortDownMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 8:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - BUBBLE SORT---");
            BubbleSortDownTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 9:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - BUBBLE SORT---");
            BubbleSortUpTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 10:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - SELECTION SORT---");
            SelectionSortUpMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 11:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - SELECTION SORT---");
            SelectionSortDownMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 12:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - SELECTION SORT---");
            SelectionSortUpTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 13:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - SELECTION SORT---");
            SelectionSortDownTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 14:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - INSERTION SORT---");
            InsertionSortUpMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 15:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - INSERTION SORT---");
            InsertionSortDownMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 16:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - INSERTION SORT---");
            InsertionSortUpTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 17:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - INSERTION SORT---");
            InsertionSortDownTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 18:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - SHELL SORT---");
            ShellSortUpMS(a, n, h, k);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 19:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - SHELL SORT---");
            ShellSortDownMS(a, n, h, k);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 20:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - SHELL SORT---");
            ShellSortUpTEN(a, n, h, k);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 21:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - SHELL SORT---");

            ShellSortDownTEN(a, n, h, k);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 22:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - QUICK SORT---");
            QuickSortUpMS(a, 0, n-1);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 23:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - QUICK SORT---");
            QuickSortDownMS(a, 0, n - 1);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 24:
        system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - QUICK SORT---");
            QuickSortUpTEN(a, 0, n - 1);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 25:
            system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - QUICK SORT---");
            QuickSortDownTEN(a, 0, n - 1);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;

    case 26:
            system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO MA SO - MERGE SORT---");
            MergeSortUpMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 27:
            system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO MA SO - MERGE SORT---");
            MergeSortDownMS(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 28:
            system("cls");
            puts("---SX DANH SACH NHAN VIEN TANG DAN THEO TEN - MERGE SORT---");
            MergeSortUpTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 29:
            system("cls");
            puts("---SX DANH SACH NHAN VIEN GIAM DAN THEO TEN - MERGE SORT---");
            MergeSortDownTEN(a, n);
            xuatnv(a, n);
            puts("\nNhan phim bat ki de quay lai MENU !");
            getch();    goto back;
    case 0:
        break;
       
    }
    getch();
}

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

Đăng nhận xét