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

Đề tài: Chuyển mã C# giùm

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    1

    Mặc định Chuyển mã C# giùm

    Visual C# Code:
    1. // method to call merge sort:
    2. void mergeSort(int numbers[], int temp[], int array_size)
    3. {
    4.   m_sort(numbers, temp, 0, array_size - 1);
    5. }
    6.  
    7. // helper method to include two bound
    8. void m_sort(int numbers[], int temp[], int left, int right)
    9. {
    10.   int mid;
    11.  
    12.   if (right > left)
    13.   {
    14.     // first devide the array in two parts
    15.     mid = (right + left) / 2;
    16.    
    17.     // then recursively sort each half til right == left
    18.     m_sort(numbers, temp, left, mid);
    19.     m_sort(numbers, temp, mid+1, right);
    20.  
    21.     // merge them back, now that two half are sorted:
    22.     merge(numbers, temp, left, mid+1, right);
    23.   }
    24. }
    25.  
    26. // merge two array:
    27. void merge(int numbers[], int temp[], int left, int mid, int right)
    28. {
    29.   int i, left_end, num_elements, tmp_pos;
    30.  
    31.   left_end = mid - 1;
    32.   tmp_pos = left;
    33.   num_elements = right - left + 1;
    34.  
    35. // walk through each, put the smallest left-over in either left side
    36. // or right side to the temp array in each iteration.
    37.   while ((left <= left_end) && (mid <= right))
    38.   {
    39.     if (numbers[left] <= numbers[mid])
    40.     {
    41.       temp[tmp_pos] = numbers[left];
    42.       tmp_pos = tmp_pos + 1;
    43.       left = left +1;
    44.     }
    45.     else
    46.     {
    47.       temp[tmp_pos] = numbers[mid];
    48.       tmp_pos = tmp_pos + 1;
    49.       mid = mid + 1;
    50.     }
    51.   }
    52.  
    53. // then put the left over in the two array, if any.
    54.   while (left <= left_end)
    55.   {
    56.     temp[tmp_pos] = numbers[left];
    57.     left = left + 1;
    58.     tmp_pos = tmp_pos + 1;
    59.   }
    60.   while (mid <= right)
    61.   {
    62.     temp[tmp_pos] = numbers[mid];
    63.     mid = mid + 1;
    64.     tmp_pos = tmp_pos + 1;
    65.   }
    66.  
    67. // copy the array back to its original array:
    68.   for (i=0; i <= num_elements; i++)
    69.   {
    70.     numbers[right] = temp[right];
    71.     right = right - 1;
    72.   }
    73. }

    mình chưa học C/C++ ai có thể chuyển toàn bộ đoạn code trên wa C# giùm mình với. Mình không thấy chỗ giúp đỡ về C# trong diễn đàn. Nên đành post bài ở đây. Nếu sai chỗ xin Mod hay Admin move giùm nhé. Cám ơn rất nhiều

    Vui lòng để code vào tag code, chứ không phải tag quote. Đọc Nội quy để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 16-03-2008 lúc 12:14 AM. Lý do: Nhắc nhở tag code

  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    TP.HCM
    Bài viết
    113

    Thực ra thì nó cũng chả có gì khác, ngôn ngữ đem ra so sánh trong bài này thì cũng chỉ là cách mô tả khác nhau thôi. Đừng quan tâm khi thấy khai báo static, do nếu muốn gọi sử dụng trong hàm main là static thì các phuơng thức cũng phải static thôi. Mà cái bài này không thấy mãng kết quả được trả về.

    Visual C# Code:
    1.     class Program
    2.     {
    3.         static void Main(string[] args)
    4.         {
    5.             //Gọi các hàm mergesort ở đây
    6.         }
    7.  
    8.         // method to call merge sort:
    9.         static void mergeSort(int[] numbers, int[] temp, int array_size)
    10.         {
    11.             m_sort(numbers, temp, 0, array_size - 1);
    12.         }
    13.  
    14.         // helper method to include two bound
    15.         static void m_sort(int[] numbers, int[] temp, int left, int right)
    16.         {
    17.             int mid;
    18.  
    19.             if (right > left)
    20.             {
    21.                 // first devide the array in two parts
    22.                 mid = (right + left) / 2;
    23.  
    24.                 // then recursively sort each half til right == left
    25.                 m_sort(numbers, temp, left, mid);
    26.                 m_sort(numbers, temp, mid+1, right);
    27.  
    28.                 // merge them back, now that two half are sorted:
    29.                 merge(numbers, temp, left, mid+1, right);
    30.             }
    31.         }
    32.  
    33.         // merge two array:
    34.         static void merge(int[] numbers, int[] temp, int left, int mid, int right)
    35.         {
    36.             int i, left_end, num_elements, tmp_pos;
    37.  
    38.             left_end = mid - 1;
    39.             tmp_pos = left;
    40.             num_elements = right - left + 1;
    41.  
    42.             // walk through each, put the smallest left-over in either left side
    43.             // or right side to the temp array in each iteration.
    44.             while ((left <= left_end) && (mid <= right))
    45.             {
    46.                 if (numbers[left] <= numbers[mid])
    47.                 {
    48.                     temp[tmp_pos] = numbers[left];
    49.                     tmp_pos = tmp_pos + 1;
    50.                     left = left +1;
    51.                 }
    52.                 else
    53.                 {
    54.                     temp[tmp_pos] = numbers[mid];
    55.                     tmp_pos = tmp_pos + 1;
    56.                     mid = mid + 1;
    57.                 }
    58.             }
    59.  
    60.         // then put the left over in the two array, if any.
    61.             while (left <= left_end)
    62.             {
    63.                 temp[tmp_pos] = numbers[left];
    64.                 left = left + 1;
    65.                 tmp_pos = tmp_pos + 1;
    66.             }
    67.  
    68.             while (mid <= right)
    69.             {
    70.                 temp[tmp_pos] = numbers[mid];
    71.                 mid = mid + 1;
    72.                 tmp_pos = tmp_pos + 1;
    73.             }
    74.  
    75.         // copy the array back to its original array:
    76.             for (i=0; i <= num_elements; i++)
    77.             {
    78.                 numbers[right] = temp[right];
    79.                 right = right - 1;
    80.             }
    81.         }
    82.     }

    Gác Kiếm

  3. #3
    Ngày gia nhập
    01 2008
    Bài viết
    1

    cám ơn pác sunflower nhiều lắm. Mình kiếm hoài code sắp sếp bằng Merge Sort của C# nhưng không có . Chỉ có code C/C++ thôi. Cám ơn vô cùng

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi metallica87 Xem bài viết
    cám ơn pác sunflower nhiều lắm. Mình kiếm hoài code sắp sếp bằng Merge Sort của C# nhưng không có . Chỉ có code C/C++ thôi. Cám ơn vô cùng
    Bạn phải xem thử thuật toán thế nào chứ lấy code C/C++ đem chuyển sang C# thì bạn cũng chẳng hiểu gì về thuật toán rồi.
    Không biết ghi gì luôn ...

  5. #5
    Ngày gia nhập
    01 2008
    Bài viết
    1

    Bạn phải xem thử thuật toán thế nào chứ lấy code C/C++ đem chuyển sang C# thì bạn cũng chẳng hiểu gì về thuật toán rồi.
    Bạn không hiểu mình rồi. Nếu mình có thời gian thì mình đã học thêm C/C++ rồi và mình đâu cần phải nhờ member của diễn đàn giúp đỡ đâu. Nói chính xác là là mình không hiểu những từ khóa ở trong C/C++ => Ko hiểu thuật toán nó viết về cái gì và làm chức năng gì.

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Mặc định Chuyển mã C# giùm

    Trích dẫn Nguyên bản được gửi bởi metallica87 Xem bài viết
    Bạn không hiểu mình rồi. Nếu mình có thời gian thì mình đã học thêm C/C++ rồi và mình đâu cần phải nhờ member của diễn đàn giúp đỡ đâu. Nói chính xác là là mình không hiểu những từ khóa ở trong C/C++ => Ko hiểu thuật toán nó viết về cái gì và làm chức năng gì.
    Bạn càng hiểu sai ý mình. Thuật toán và C/C++ khác nhau. Bạn hiểu được thuật toán thì có thể cài đặt với bất kỳ ngôn ngữ gì. Ý mình muốn nói bạn nên tìm hiểu thuật toán đó, rồi code bằng C# thì hay hơn là nhờ thành viên chuyển code, bởi sau khi chuyển liệu bạn đọc lại code C# có hiểu được thuật toán hay không?
    Bạn hiểu ý mình chứ? Chỉ là một lời góp ý.
    Không biết ghi gì luôn ...

Các đề tài tương tự

  1. Xin các bạn tư vấn giùm mình
    Gửi bởi vanhaonapa trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 05-04-2013, 01:44 PM
  2. các bạn sửa giùm lỗi này hộ tớ với!
    Gửi bởi mr.cuong_tq trong diễn đàn Nhập môn lập trình Java
    Trả lời: 1
    Bài viết cuối: 01-10-2012, 06:36 PM
  3. Lập trình C++ Xem cái hàm này giùm mình tí!
    Gửi bởi thientrang1203 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 12-04-2012, 08:37 PM
  4. Chuyển sang code C giùm mình với!
    Gửi bởi new_soul_693 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 14-01-2012, 09:42 PM
  5. các bác chỉ giùm chỗ sai của em
    Gửi bởi x2831987 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 27-06-2007, 08:08 AM

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