Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: [ Solved ]Xin xem giúp các thuật toán sắp xếp!

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    2

    Mặc định [ Solved ]Xin xem giúp các thuật toán sắp xếp!

    C++ Code:
    1. /*MENU CHUONG TRINH
    2. Cac thuat toan:   Quicksort
    3.           Binsort
    4.           Sap xep chen, chon, noi bot.
    5. */
    6. #include<conio.h>
    7. #include<iostream.h>
    8. #include<process.h>
    9. void nhap(int m[],int &n)
    10. {
    11.  cout<<"nhap so pt cua mang n=";
    12.  cin>>n;
    13.  for(int i=1;i<=n;i++)
    14.  {
    15.    cout<<"nhap pt thu "<<i<<": ";
    16.    cin>>m[i];
    17.  }
    18. }
    19. void xuat(int m[],int n)
    20. {
    21.  cout<<"\nnoi dung mang :";
    22.  for(int i=1;i<=n;i++)
    23.   cout<<m[i]<<" ";
    24. }
    25. void hoanvi(int &a,int &b)
    26. {  int t;
    27. t=a;
    28. a=b;
    29. b=t;
    30. }
    31. void quicksort(int m[],int n)
    32. {  int a[100],i,t,j,x;
    33.    int k=2,l=0,r=n-1;
    34.     a[k-2]=l;a[k-1]=r;
    35.      do{ l=a[k-2];r=a[k-1];k-=2;
    36.     do{ i=l;j=r;x=m[(l+r)/2];
    37.        do{ while(m[i]<x) i++;
    38.            while(m[j]>x) j--;
    39.            if (i<=j)  { hoanvi(m[i],m[j]);
    40.                 i++; j--;
    41.               }
    42.        }while (i<=j);
    43.       if(i<r) { k+=2; a[k-2]=i;a[k-1]=r;}
    44.       r=j;
    45.     } while (l<r);
    46.      }while (k>0);
    47. }
    48.  
    49. void binsort(int mang[],int n)
    50. {
    51.   int i, j, x, l, r, m;
    52.   for (i=1;i<n;i++)
    53.   {
    54.     x=mang[i];
    55.     l=0;
    56.     r=i-1;
    57.     while (l<= r)
    58.     {
    59.       m = (l + r) / 2;
    60.       if (x < mang[m])
    61.     r = m - 1;
    62.       else
    63.     l = m + 1;
    64.     }
    65.     if (x < mang[l])
    66.     {
    67.       for (j=i-1; j>=l; j--)
    68.     mang[j+1] = mang[j];
    69.       mang[l] = x;
    70.     }
    71.   }
    72. }
    73. void sapxepnoibot(int mang[],int n)
    74. {
    75.   int i, j, x;
    76.   for (i=1; i< n; i++)
    77.     for (j=n-1; j>=i; j--)
    78.     {
    79.       if (mang[j-1] > mang[j])
    80.       {
    81.     x = mang[j-1];
    82.     mang[j-1] = mang[j];
    83.     mang[j] = x;
    84.       }
    85.     }
    86. }
    87. void sapxepchon(int mang[],int n)
    88. {
    89.   int i, j, k, x, mx;
    90.   for (i=0; i<n-1; i++)
    91.   {
    92.     mx = mang[i];
    93.     k = i;
    94.     for (j=i+1; j<n; j++)
    95.       if (mang[j] < mx)
    96.       {
    97.     mx = mang[j];
    98.     k = j;
    99.       }
    100.     x = mang[k];
    101.     mang[k] = mang[i];
    102.     mang[i] = x;
    103.   }
    104. }
    105. void sapxepchen(int mang[],int n)
    106. {
    107.   int i, j, x;
    108.   for (i=1; i<n; i++)
    109.   {
    110.     x = mang[i];
    111.     j = i-1;
    112.     while (x < mang[j] && j >= 0)
    113.     {
    114.       mang[j+1] = mang[j];
    115.       j--;
    116.     }
    117.     mang[j+1] = x;
    118.   }
    119. }
    120.  
    121. void main()
    122. {
    123. int n,m[100];
    124. char l;
    125. clrscr() ;
    126. cout<<"\n thuat toan sap xep " ;
    127. nhap(m,n);
    128. xuat(m,n);
    129. cout<<"\n 1 . quicksort " ;
    130. cout<<"\n 2 . binsort " ;
    131. cout<<"\n 3 . sap xep noi bot " ;
    132. cout<<"\n 4 . sap xep chen " ;
    133. cout<<"\n 5 . sap xep chon" ;
    134. cout<<"\n 6 . thoat chuong trinh "  ;
    135. cout<<"\n lua chon cong viec can thuc hien ( 1 -> 6) : " ;
    136. cin>>l;
    137. switch(l)
    138. {
    139. case 1 : quicksort(m,n) ;
    140.  xuat(m,n);
    141. break ;
    142. case 2 : binsort(m,n) ;
    143. xuat(m,n);
    144. break ;
    145. case 3 : sapxepnoibot(m,n) ;
    146. xuat(m,n);
    147.  break ;
    148. case 4 : sapxepchen(m,n) ;
    149. xuat(m,n);
    150.  break ;
    151. case 5 : sapxepchon(m,n) ;
    152. xuat(m,n);
    153. break ;
    154. case 6 : exit(0) ;
    155. defaut : break ;
    156. }
    157. getch() ;
    158. }

    Xin mọi người xem giúp tại sao nó không chạy được. Nếu ai có thể chỉnh lại giúp thì mong cho lời giải thích nha. Cảm ơn!



    Lưu ý: bỏ code vào tag code. vui lòng Đọc lại nội quy diễn đàn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi zkday2686 : 04-10-2008 lúc 12:45 PM.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Đọc nội quy rồi sửa lại bài viết giùm !
    None!

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

    code của cậu sai phần khai báo char l;
    nhưng các giải thuật sắp xếp của cậu cũng sai rồi
    tự đọc ở đây để biết thêm về các giải thuật
    http://forums.congdongcviet.com/showthread.php?t=697
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. [ Solved ]Thuật toán để tạo ra công thức bất kì
    Gửi bởi caibangbangchu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 26
    Bài viết cuối: 19-11-2008, 12:18 AM
  2. [ Solved ]Kĩ thuật hướng đối tượng
    Gửi bởi khauthancong_arsenal trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 24-09-2008, 12:18 PM
  3. [Solved] Hỏi về thuật toán tìm kiếm
    Gửi bởi thanhlinhhue trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 18-09-2008, 08:36 AM
  4. [Solved] Hỏi về các thuật toán tìm kiếm
    Gửi bởi vodanhxxx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 17-09-2008, 07:07 PM
  5. [ Solved ]Thuật toán trong cây nhị phân
    Gửi bởi thientran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 01-06-2008, 03:06 PM

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