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 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á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