Forum sinh viên K55CC - UET
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Forum sinh viên K55CC - UET

Sinh viên K55CC - Đại học Công Nghệ
 
Trang ChínhTrang Chính  Portal*Portal*  Latest imagesLatest images  Đăng kýĐăng ký  Đăng Nhập  

 

 Thảo luận về các lab CTDL&GT

Go down 
+3
DEV.CENTER
Admin
onlyesterday
7 posters
Chuyển đến trang : Previous  1, 2
Tác giảThông điệp
caranhp
Thành viên
Thành viên
caranhp


Tổng số bài gửi : 2
Votes : 0
Join date : 19/09/2011

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyMon Sep 19, 2011 10:29 pm

xuyenit55 đã viết:
DEV.CENTER đã viết:
xuyenit55 đã viết:

uhm , đôi lúc thấy nó chạy runtime thôi , tư tưởng của tớ là đúng , tớ đang code lại cho chuẩn xác ! cười nhăn răng
ko phải lỗi runtime chịu
thế hả , để tớ xem lại xem sao !:)
Tớ thấy bài của bạn thuật toan rất hay nhưng thi thoảng chạy bị lỗi j đó ko chạy dược
Chỉ cần sửa lại
for ( int i = 0 ; i < max ; i++)
{
c[a[i]] +=1;
}
Thành
for ( int i = 0 ; i < n ; i++)
{
c[a[i]] +=1;
}
Thì chạy ko còn lỗi nữa.
Nhưng bài này nếu là sỗ âm thfi có vẻ như ko còn đúng nữa.
Mà bài của xuyên hình như nhầm tim số lớn thứ k thành tìm số nhỏ thứ k thì phải
Về Đầu Trang Go down
xuyenit55
Moderator
Moderator
xuyenit55


Tổng số bài gửi : 12
Votes : 3
Join date : 14/09/2011
Age : 32

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyMon Sep 19, 2011 11:07 pm

caranhp đã viết:
xuyenit55 đã viết:
DEV.CENTER đã viết:
xuyenit55 đã viết:

uhm , đôi lúc thấy nó chạy runtime thôi , tư tưởng của tớ là đúng , tớ đang code lại cho chuẩn xác ! cười nhăn răng
ko phải lỗi runtime chịu
thế hả , để tớ xem lại xem sao !:)
Tớ thấy bài của bạn thuật toan rất hay nhưng thi thoảng chạy bị lỗi j đó ko chạy dược
Chỉ cần sửa lại
for ( int i = 0 ; i < max ; i++)
{
c[a[i]] +=1;
}
Thành
for ( int i = 0 ; i < n ; i++)
{
c[a[i]] +=1;
}
Thì chạy ko còn lỗi nữa.
Nhưng bài này nếu là sỗ âm thfi có vẻ như ko còn đúng nữa.
Mà bài của xuyên hình như nhầm tim số lớn thứ k thành tìm số nhỏ thứ k thì phải
à ừ nhỉ tớ lộn hihi thanks cậu nhé ! cười nhăn răng , còn nó bị lỗi là lỗi runtime cậu ạ !

edit : thanks cậu nhé , vừa nãy mới nhớ ra là như thế ! lỗi runtime chính là do cái dòng đó , code tớ sửa hoàn chỉnh đây ! cười nhăn răng

Code:
/*
  Name: Bai 2 : tim phan tu lon thu 1 , thu 2 , thu k;
  Copyright:
  Author:
  Date: 18/09/11 08:09
  Description:  ban dau co the sort mang sau do tim gia tri  lon thu k cua mang
*/

#include<iostream>
#include<stdlib.h>

using namespace std;

int main()
{
   
    
     int n =0 , a[100],c[100] , m = 0 , f = 0 , b[100] , t = 0  , k;
     // sinh so ngau nhien cua n va mang cua a
    
     srand((unsigned)time(NULL));
     n = rand()%10+3;
     for ( int  i = 0 ; i < n ; i++){
        a[i] = rand() %10;
        cout << a[i] << " , ";
      
     }
     int max = 0 ; max  = a[0];
     for ( int  i = 1 ; i < n ; i++){
      
          if ( max < a[i] ) max = a[i];
     }
     // c  = new int [max];
     for ( int i = 0 ; i < max ; i++)
     {
          c[i] = 0;
     }
     for (  int i = 0 ; i < n ; i++)
     {
         c[a[i]] +=1;
     }
     cout << "\nnhap k = " ;
     cin >> k;
     for (  int j = max ; j >=0 ; j--)
     {
         if ( c[j] != 0)
         {
            b[t] = j;
         
             if ( (t+1) == k)
             {
               
               cout << "\nPhan tu lon thu " << k << " la : " << b[t] << endl;
            }
         
           t++;
         }
     }
     system("pause");
     return 0;
}
    





Được sửa bởi xuyenit55 ngày Tue Sep 20, 2011 1:18 am; sửa lần 2.
Về Đầu Trang Go down
onlyesterday
Moderator
Moderator
onlyesterday


Tổng số bài gửi : 76
Votes : 2
Join date : 14/09/2011
Age : 30
Đến từ : LAPUTA

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyMon Sep 19, 2011 11:12 pm

các bác giải thích cho t với :(
Về Đầu Trang Go down
xuyenit55
Moderator
Moderator
xuyenit55


Tổng số bài gửi : 12
Votes : 3
Join date : 14/09/2011
Age : 32

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyTue Sep 20, 2011 1:13 am

only.yesterday đã viết:
các bác giải thích cho t với :(
thuật toán sắp xếp đếm phân phối như sau :
giải sử ta có 1 mảng là 1 , 2 , 5 ,3 , 6 , 5 ;
mảng này có giá trị lớn nhất là 6 vì vậy ta phải tạo 1 mảng dem[6] có 6 phần tử nhé , khởi tạo mảng này ban đầu là = 0 tất !
Code:
for ( int k = 0 ; k < 7 ; k++)
{
    dem[k] = 0;
}
sau đó Thì ta duyệt mảng để đếm xem số lần xuất hiện của từng phần tử
for ( int i = 0 ; i < n ; i++)
{
dem [a[i]] += 1 ; // lúc này a[i] thay cho giá trị của k , ví như a[i] = 1 thì nó dem[1] +=1;
}
sau đó đến lúc này ta có 1 mảng như sau :
phần tử = 0 có vị trí đứng từ vị trị 0 đến vị trí dem[0];
phần từ = 1 có vị trí đứng từ vị trị dem[0]+1 tới vị trí là dem[0] +dem[1];
phần tử có khóa = k có vị trí đứng từ vị trí dem[0] +dem[1] +..... + dem[k-1]+1 đến dem[0] + dem[1] +....+ dem[k];
code demo đây ! cười nhăn răng

Code:
/*
  Name:  day sap xep theo kieu dem phan phoi voi do phuc tap la 0(n+m);
  Copyright:
  Author:
  Date: 31/07/11 21:25
  Description:
Day khoa k [1..n] la cac so nguyen nam trong khoang tu 0 toi M
ta dung day c[0..M] cac bien dem , o day C[V] la so lan xuat hien gia tri V trong day khoa
*/
#include<iostream>
using namespace std;

int main()
{
   
     int a[10] = { 1,2,2,0,0,1,1,3,3,3};
     int c[10], x[10];
     int v , i;
     // khoi dau gia tri cua bien dem = 0;
    
     for ( v = 0 ; v <10 ; v++)
     {
         c[v] = 0;
     }
     // dem so lan xuat hien cua gia tri
    
     for ( i = 0 ; i < 10 ; i++)
     {
         c[a[i]]+=1;
     }
    
     // tim vi tri cuoi cua moi doan
     for ( v = 1 ; v < 10 ; v++)
     {
         c[v] +=c[v-1];
      //   cout << c[v] << " , ";
     }
     cout << endl;
     for ( i = 10-1; i >= 0 ; i--)
     {         v = a[i];
         x[c[v]]= a[i];
      //   cout << x[c[v]]<< " , "; // cai nay in ra de dem xem nó xuat hien o nhung doan nao
         c[v] -=1;
      //   cout << x[c[v]]<< " , ";
        
    }
   // a = x;
   cout << endl;
   cout <<"\nMang sau khi da sap xep la :\n";
    for ( i = 1 ; i <=10; i++)
    {
      //   a[i] = x[i];
         cout << x[i] << " , ";
    }
    cin.get();
    return 0;
}
    



ps : khả năng diễn đạt kém quá buồn nếu ko hiểu đc thì cứ chạy code và tính bằng tay nhé !
Về Đầu Trang Go down
xuyenit55
Moderator
Moderator
xuyenit55


Tổng số bài gửi : 12
Votes : 3
Join date : 14/09/2011
Age : 32

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyTue Sep 20, 2011 2:03 pm

caí bài mình làm ở trên độ phức tạp của nó là 0(max (pt_max ,n))
với pt_max là giá trị lớn nhất của mảng đã nhập nhé ! cười nhăn răng
Về Đầu Trang Go down
jinboo_susu
Thành viên
Thành viên



Tổng số bài gửi : 1
Votes : 0
Join date : 22/09/2011

Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 EmptyThu Sep 22, 2011 11:51 am

bon minh chua hoc @@ moi thuc hanh buoi dau tien lam` ngay lab3
đồng ý 2 tay
Về Đầu Trang Go down
Sponsored content





Thảo luận về các lab CTDL&GT - Page 2 Empty
Bài gửiTiêu đề: Re: Thảo luận về các lab CTDL&GT   Thảo luận về các lab CTDL&GT - Page 2 Empty

Về Đầu Trang Go down
 
Thảo luận về các lab CTDL&GT
Về Đầu Trang 
Trang 2 trong tổng số 2 trangChuyển đến trang : Previous  1, 2
 Similar topics
-
» thảo luận về java lab02

Permissions in this forum:Bạn không có quyền trả lời bài viết
Forum sinh viên K55CC - UET :: Học tập :: Môn chuyên ngành IT :: Ngôn ngữ C, C++-
Chuyển đến