Trang 1 trên tổng số 5 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 43 kết quả

Đề tài: Sắp xếp thứ tự tăng dần trong mảng!

  1. #1
    Ngày gia nhập
    05 2008
    Nơi ở
    TP.HCM
    Bài viết
    7

    Red face Sắp xếp thứ tự tăng dần trong mảng!

    Mình vừa viết một hàm dùng để sắp xếp thứ tự giảm dần trong mảng int gồm n phần tử, mình chạy thì không báo lỗi nhưng nó lại không chịu sắp xếp.
    Các bạn xem giúp mình sai chỗ nào nha. Thank nhiều lắm ^^

    C Code:
    1. void Sort(int a[], int n)
    2. {
    3.     for(int i=0;i<n-1;i++)
    4.         for(int j=1;j<n;j++)
    5.             if(a[i]<a[j])
    6.             {
    7.                 int tam=a[i]; a[i]=a[j]; a[j]=tam;
    8.             }
    9.  
    10. }
    Đã được chỉnh sửa lần cuối bởi yoyo89312 : 28-05-2008 lúc 09:09 PM.

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

    Có thể nó không sắp xếp là bởi cậu sử dụng hàm, chỉ là truyền vào một mảng, sắp xếp mảng đó trong hàm chứ cái mảng chính vẫn chưa sắp xếp.
    Thử lại với hàm chỉnh lại đôi chút sau:
    C Code:
    1. void Sort(int &a[], int n)
    2. {
    3.     for(int i=0;i<n-1;i++)
    4.         for(int j=i+1;j<n;j++)
    5.             if(a[i]<a[j])
    6.             {
    7.                 int tam=a[i]; a[i]=a[j]; a[i]=tam;
    8.             }
    9.  
    10. }
    Không biết ghi gì luôn ...

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    169

    C++ Code:
    1. for(int i=0;i<n;i++)
    2. {
    3.     for(int j=0;j<n;j++)
    4.     {
    5.         if(a[i]<a[j])
    6.         {
    7.             int tam=a[i]; a[i]=a[j]; a[j]=tam;
    8.         }
    9.     }
    10. }

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

    Có thấy khác gì đâu RadicalLight.
    Bài viết như cậu thì lại đụng đến tối ưu rồi. Vì có quá nhiều phép so sánh dư thừa trong vòng lặp thứ 2.
    Không biết ghi gì luôn ...

  5. #5
    Ngày gia nhập
    10 2007
    Bài viết
    169

    - Khác chổ "[i]=a[j]; a[j]=tam;"
    - Tối ưu thì để "yoyo89312" tự lo ^_^!

  6. #6
    Ngày gia nhập
    05 2008
    Nơi ở
    TP.HCM
    Bài viết
    7

    Mặc định Sắp xếp thứ tự tăng dần trong mảng!

    C Code:
    1. void Sort(int a[], int n)
    2. {
    3.     for(int i=0;i<n-1;i++)
    4.         for(int j=1;j<n;j++)
    5.             if(a[i]<a[j])
    6.             {
    7.                 int tam=a[i]; a[i]=a[j]; a[j]=tam;
    8.             }
    9.  
    10. }

    Mình tìm ra chỗ sai rồi mấy bạn, trong vòng lặp for thứ 2, nếu để j=1 thì trong lần lập thứ 2 của vòng for thứ nhất, j lại được gán giá trị = 1 tiếp, như vậy, nó lại so sánh với a[1] nữa nên bị sai. Phải sửa lại là for(int j=i+1;j<n;j++)

    C Code:
    1. void Sort(int a[], int n)
    2. {
    3.     for(int i=0;i<n-1;i++)
    4.         for(int j=i+1;j<n;j++)
    5.             if(a[i]<a[j])
    6.             {
    7.                 int tam=a[i]; a[i]=a[j]; a[j]=tam;
    8.             }
    9.  
    10. }

    Còn của bạn Forlorn_hope, kêu mình thêm void Sort(int &a[], int n), theo mình biết thì mảng đã là con trỏ rồi, nên không cần thêm& để lấy đỉa chỉ nữa, không biết mình nói như vậy có đúng không nữa. Mong các bạn chỉ giáo.

    Thank mọi người nhiều lắm.

  7. #7
    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 RadicalLight Xem bài viết
    - Khác chổ "[i]=a[j]; a[j]=tam;"
    - Tối ưu thì để "yoyo89312" tự lo ^_^!
    Hix, nhầm tí, có lỗi gì đó rùi, ht copy bài cậu yoyo89312 từ trên xuống mà có quá nhiều thay đổi: ở 2 vòng for, a[i]=tam -> khó hiểu
    Không biết ghi gì luôn ...

  8. #8
    Ngày gia nhập
    05 2008
    Nơi ở
    TP.HCM
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi Forlorn_hope Xem bài viết
    Hix, nhầm tí, có lỗi gì đó rùi, ht copy bài cậu yoyo89312 từ trên xuống mà có quá nhiều thay đổi: ở 2 vòng for, a[i]=tam -> khó hiểu
    Do lúc vừa post xong xem lại thấy sai nên mình sửa lại đó, chắc lúc đó bạn cũng vừa copy nên mới khác nhau.

  9. #9
    Ngày gia nhập
    05 2008
    Bài viết
    2

    các bạn giúp tui ba`i na`y với:nhập va`o một ma trận sau dó xuất ra do`ng na`o có tổng lớn nhất.
    thanks !

  10. #10
    Ngày gia nhập
    05 2008
    Nơi ở
    hồ chí minh
    Bài viết
    4

    bạn ý chỉ sai cai
    PHP Code:
    "&" 
    finish tại đây
    I LOVE YOU OKE!

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

  1. Lập trình C++0x Nạp chồng toán tử tăng trước ++ và toán tử tăng sau trong lớp Time
    Gửi bởi programmingvietnam trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 03-08-2014, 09:38 AM
  2. Dịch vụ tăng like facebook và tăng vote google +1
    Gửi bởi raovatgirevn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 07-05-2012, 11:26 AM
  3. help!! chèn 1 số vào mảng tăng khồng làm thay đổi tính tăng bằng danh sách liên kết đơn....
    Gửi bởi nobita_1992 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 20-11-2011, 09:03 PM
  4. sắp xếp mảng số nguyên chẵn tăng dần, lẻ tăng dần, không dùng mảng tạm
    Gửi bởi hailoc12 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 09-08-2006, 11:44 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