Trang 2 trên tổng số 2 Đầu tiênĐầu tiên 12
Từ 11 tới 13 trên tổng số 13 kết quả

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

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

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

    Topic chỉ nhằm so sánh đệ quy với lặp, nó cũng có liên kết cải tiến thuật toán trên để giảm bớt số lần hoán đổi hai vị trí phần tử

    C Code:
    1.        void selectionSort(int a[], int n) {
    2.                 //Mảng a[m] có độ dài n
    3.                 for (int i = 0; i < n - 1; i++) {
    4.                         int max = i;
    5.  
    6.                         for (int j = i + 1; j < n; j++)
    7.                                 if (a[max] > a[j])
    8.                                         max = j;
    9.                         if (max != i) {
    10.                                 a[max] ^= a[i];
    11.                                 a[i] ^= a[max];
    12.                                 a[max] ^= a[i];
    13.                         }
    14.                 }
    15.         }

    Tiếng Việt:
    Sắp xếp chọn

  2. #12
    Ngày gia nhập
    08 2017
    Bài viết
    1,229

    Khi bỏ qua cảnh báo biên dịch, dòng 13 / 14:

    C Code:
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. //..
    4. char Menu(){
    5.     system("cls");
    6.     printf("\n\n\t==================== CHUONG TRINH QUAN LY SINH VIEN ====================\n\n\n");
    7.     printf("\t\t\t\t1. Them Moi Ho So\n\n");
    8.     printf("\t\t\t\t2. In Danh Sach\n\n");
    9.     printf("\t\t\t\t3. Sap Xep\n\n");
    10.     printf("\t\t\t\t4. Tim kiem\n\n");
    11.     printf("\t\t\t\t5. Thong Ke\n\n");
    12.     printf("\t\t\t\t6. Thoat\n\n");
    13.     //return /*warning*/
    14.     getchar();
    15. }
    16.  
    17. int main (){
    18.     char mn = 0;
    19.     do{
    20.         mn = Menu();
    21.         switch(mn){
    22.             case '1':  
    23.                 printf("NhapHoSo(sv, &n);"); //NhapHoSo(sv, &n);
    24.                 break;
    25.             case '2':  
    26.                 printf("InDanhSach(sv, n);"); //InDanhSach(sv, n);
    27.                 break;
    28.             case '3':  
    29.                 printf("SapXep(sv, n);"); //SapXep(sv, n);
    30.                 break;
    31.             case '4':  
    32.                 printf("TimKiem();"); //TimKiem();
    33.                 break;
    34.             case '5':  
    35.                 printf("ThongKe();"); //ThongKe();
    36.                 break;
    37.             case '6':  
    38.                 printf("exit(0);"); exit(0);
    39.                 break;
    40.             default:
    41.                 printf("menu is %c!\n", mn);
    42.                 printf("NHAP SAI! MOI NHAP LAI!");
    43.         }
    44.         printf("\nPress any key to continue . . .");
    45.         system("pause>nul");
    46.     }
    47.     while(mn != '6');
    48.     //...
    49.     return 0;
    50. }
    các chức năng (mới là khung tạm) có được gọi không !

  3. #13
    Ngày gia nhập
    08 2017
    Bài viết
    1,229

    Nguồn Ma Trận Xoắn Ốc
    http://diendan.congdongcviet.com/threads/t410288::ma-tran-xoan-oc-so-nguyen-to.cpp
    Visual C# Code:
    1. using System;
    2.  
    3. class Matrix{
    4.     static void Spiral(int[,] a, int ofs, int sz, ref int t){
    5.         int i = ofs, j = ofs;
    6.         while (j < sz) //Top: Left to Right
    7.             a[i, j++] = t++;
    8.         while (i < sz) //Right: Top to Bottom
    9.             a[i++, j] = t++;
    10.         while (j > ofs) //Bottom: Right to Left
    11.             a[i, j--] = t++;
    12.         while (i > ofs) //Left: Bottom to Top
    13.             a[i--, j] = t++;
    14.     }
    15.     static void Main(){
    16.         int m, i, j;
    17.        
    18.         Console.Write("Input Matrix M x M:\n");
    19.         Console.Write(" M: "); m = int.Parse(Console.ReadLine());
    20.  
    21.         int[,] a = new int[m, m];      
    22.  
    23.         int t = 1, siz = m * m, ofs = 0, max = m - 1;
    24.         while(t < siz){
    25.             Spiral(a, ofs, max, ref t);
    26.             ofs++; max--;
    27.         }
    28.         if (t == siz) a[ofs, ofs] = t;
    29.         //output
    30.         for(i = 0; i < m; i++){
    31.             for(j = 0; j < m; j++) Console.Write("{0,8} ", a[i, j]);
    32.             Console.WriteLine();
    33.         }
    34.     }  
    35. }

    Còn với Ma Trận Xoắn Ốc Số Nguyên Tố không cần tính lại có thể đọc file tính sẵn:
    Table of n, prime(n) for n = 1..10000
    Table of n, prime(n) for n = 1..100000
    ở đâu đó, ví dụ:
    https://oeis.org/A000040

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