Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: CTDL & Giải thuật dùng để làm gì ?

  1. #1
    Ngày gia nhập
    08 2017
    Bài viết
    367

    Mặc định CTDL & Giải thuật dùng để làm gì ?

    Đọc topic
    code bị lỗi không chạy được (...)
    làm gợi lại khúc mắc bấy lâu nay : CTDL & Giải thuật dùng để làm gì ?

    Bạn có thể giúp tôi, những người như tôi ? Tôi đã tốn nhiều thời gian - nhiều năm - học nó mà chưa có dịp sử dụng, chẳng biết dụng vào chỗ nào.

    CTDL & Giải thuật dùng để làm gì !

  2. #2
    Ngày gia nhập
    08 2017
    Bài viết
    367

    20 -11 là ngày Nhà giáo Việt Nam, trước kia là Quốc tế hiến chương các Nhà giáo

    //===============================
    C Code:
    1. //
    2. #define _SvTest
    3.  
    4. #include<stdio.h>
    5. #include<stdlib.h>     /* qsort */
    6.  
    7. typedef int keytype;
    8. typedef struct{
    9.     keytype key;
    10. }recordtype;
    11.  
    12. #ifdef _SvTest
    13.     void Swap(recordtype *x, recordtype *y){
    14.         recordtype temp = *x;
    15.         *x = *y;
    16.         *y = temp;
    17.     }
    18.     int FindPivot(recordtype a[], int i, int j){
    19.         keytype firstkey = a[i].key;
    20.         int k = i+1;
    21.         while((k<=j)&&(a[k].key==firstkey)) k++;
    22.        
    23.         if(k>j) return -1;
    24.         else if((a[k].key > firstkey))
    25.             return k;
    26.         else return i;
    27.     }
    28.     int Partition(recordtype a[], int i, int j, keytype pivot){
    29.         int L=i, R=j;
    30.         while(L <= R){
    31.             while (a[L].key < pivot) L++;
    32.             while (a[R].key >= pivot) R--;
    33.             if (L < R) Swap(&a[L], &a[R]);
    34.         }
    35.         return L;
    36.     }
    37.     void QuickSort (recordtype a[], int i, int j){
    38.         keytype pivot;
    39.         int k, pivotindex = FindPivot(a, i, j);
    40.         if (pivotindex != -1){
    41.             pivot = a[pivotindex].key;
    42.             k = Partition(a, i, j, pivot);
    43.             QuickSort(a, i, k-1);
    44.             QuickSort(a, k, j);
    45.         }
    46.     }
    47. #else
    48.     //hàm so sánh dùng cho qsort
    49.     int soSanh (const void * a, const void * b){
    50.         recordtype x = *(recordtype*)a;
    51.         recordtype y = *(recordtype*)b;
    52.  
    53.         return (x.key - y.key);
    54.     }
    55. #endif
    56.  
    57. int main(){
    58.     int i, n;  
    59.     printf("nhap so phan tu, n: "); scanf("%d", &n);
    60.    
    61.     recordtype ar[50]; 
    62.     for(i=0; i<n; i++){
    63.         printf("arr_%d : ", i); scanf("%d", &ar[i].key);
    64.     }
    65.    
    66. #ifdef _SvTest
    67.     puts("\nusing QuickSort :");
    68.     QuickSort(ar, 0, n-1);
    69. #else
    70.     puts("\nusing qsort standard :");
    71.     qsort(ar, n, sizeof(recordtype), soSanh);
    72. #endif
    73.    
    74.     puts("\nResult :");
    75.     for(i= 0;i<n;i++)
    76.         printf(" --- %d", ar[i].key);
    77.     puts("\nDone, bye !");
    78.     return 0;
    79. }

    Có thể comment dòng 2 turn on / turn off để kiểm tra, cần thì cứ sửa / bỏ chỉ thị để so sánh tuần tự tôi làm / tôi áp dụng điều tôi học.
    //===============================

    Xin lỗi các người đã, đang và sẽ làm nhà giáo, giáo viên sống được bằng lương.

  3. #3
    Ngày gia nhập
    08 2017
    Bài viết
    367

    Quái thật bài viết gợi nhớ (#1) nó giống hệt ở wikipedia
    Sắp xếp nhanh,
    Quick sort đệ quy có sử dụng cấu trúc dữ liệu C++:

    C++ Code:
    1. #include<conio.h>
    2. ...
    giống đến cái header <conio.h> đưa vào chẳng biết để làm gì !


    chú thích, diễn giải :
    Quicksort thực hiện trên danh sách các số. Đường nằm ngang là các giá trị làm phần tử chốt.

  4. #4
    Ngày gia nhập
    08 2017
    Bài viết
    367

    Do không có tài tiệu, dáo chình CTDL + GT mới, hiện hành nên có thể có sai khi nhận định.

    Giả định cần xuất khẩu công nghệ về con trỏ, về danh sách liên kết sang c#, java thì cách nào để áp dụng nó ?
    http://diendan.congdongcviet.com/threads/t400186::giai-bai-tap-danh-sach-lien-ket-don.cpp

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn