30/09/2018, 19:36

String và Array cái nào nhanh hơn trong xử lý số nguyên lớn?

Cho mình hỏi là String và Arry thì cái nào dùng để xử lý số nguyên lớn nhanh hơn.
Bạn mình nói mảng bao giờ cũng nhanh hơn.
Nhưng mình nghĩ bằng nhau, do chỉ thêm 1 bước nhỏ là trừ đi kí tự 0. Ngoài ra string thuật tiện cho việc nhập xuất hơn là mảng.
:?

EDIT: Mảng số nguyên
Ngôn ngữ C

Quốc Hùng viết 21:40 ngày 30/09/2018

Bạn có thể trình bày rõ hơn không? Như là Mảng ở đây là kiểu mảng gì? và String thì có liên quan gì đến việc nhập xuất số lớn

*grab popcorn* viết 21:38 ngày 30/09/2018

nhập/xuất string thì chỉ cần kiểu
printf("%s",s);
scanf("%s",&s);

còn mảng thì 1 vòng for

Quốc Hùng viết 21:37 ngày 30/09/2018

Trên phương diện thì đa phần nhập số vào điều là kiểu thuần chủng (hay kiểu nguyên thủy) như int hoặc float tùy theo. Còn String trong c chỉ là cách nói của Một mảng kí tự (char) nên Array số sẽ xử lý đc mọi thứ trên số nguyên còn bạn dùng một mảng kí tự thì việc xử lý sẽ rất khó. Vả là C lại nghèo nàn thư viện sử lý con số trên chuỗi (Java thì nó nhiều hơn) nhưng nói chung là mình kiến nghị dùng Mảng vì chuỗi thì sẽ khó xử lý hơn. Thân ^^

Gió viết 21:50 ngày 30/09/2018

Một mảng sẽ nhanh hơn:
thay vì chọn base=10 như thường làm bạn có thể chọn base=10^6 chẳng hạn. Như vậy chiều dài của mảng sẽ giảm đi khoảng 6 lần. Khi nhân chia, cộng trừ tuỳ thuộc vào dpt của phép tính sẽ giảm tương ứng

*grab popcorn* viết 21:47 ngày 30/09/2018

Nhuwung mà tại sao lại nhanh hơn hả gió? :?
Cứ nghĩ hoài mà chả ra :’(

Gió viết 21:49 ngày 30/09/2018

để dễ hình dung: lấy vd 2 số cộng với nhau a=1234567 và b=6969696
nếu base=10^6

a biểu diễn[7,123456]
b biểu diễn [6,696969]

nếu base=10
a,b biểu diễn từng kí tự

khi cộng: [7+6,123456+696969]

Còn th 2 bạn phải cộng từng kí tự

Never is too late! viết 21:52 ngày 30/09/2018

Theo mình nghĩ nếu chỉ lưu số nguyên lớn thì String sẽ nhanh hơn nhưng nếu thực hiện các phép toán cộng, trừ, nhân, chia trên số nguyên lớn thì mảng sẽ thuận tiện hơn

yoyo viết 21:37 ngày 30/09/2018

Trên ngôn ngữ C không có khái niệm string, mà chỉ có khái niệm mảng ký tự, mà nó tương đương với mảng 1byte, nên bạn không cần phải lăn tăn cái nào nhanh hơn

Bài liên quan
0