1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tỉ lệ các thành phần của không khí

5 25 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 17,38 KB

Nội dung

Từ nhận xét trên ta thấy có thể quản lý các xâu thứ cấp theo vị trí của phần tử đầu tiên trong xâu mẫu.. Ta ký hiệu [i] là xâu có vị trí của phần tử đầu tiên trong xâu mẫu là i.[r]

(1)

Quay quay Miền nhớ tốc độ

Một số toán tin xem tưởng khó giảm chi phí miền nhớ đồng thời tăng tốc độ tính tốn Hình lập trình cũng thống trị nguyên lý lợi lần khơng gian nhớ thiệt nhiêu lần tốc độ tính tốn Thật khơng phải Về ngun tắc mà nói, quản lý nhớ chương trình thực nhanh Dĩ nhiên bạn phản đối nhận định phản ví dụ Chẳng hạn, bạn viết chương trình sử dụng có biến thực vơ hạn lần thực lâu tuỳ ý Chúng ta bàn việc khác cụ thể là, xử lý khối lượng công việc, ta xin cấp phát miền nhớ lần thực thời gian thực giảm Trong đời thường xu quan tâm áp dụng thường xuyên Này nhé, bạn phải bọc bìa cho chồng vở, chẳng hạn 100 Bạn chọn phương án hai phương án sau đây:

- Phương án thứ nhất: Trải 100 50 bàn đặt hội trường rộng mênh mông lấy để bọc bìa

Dĩ nhiên bạn chọn phương án thứ hai Xem việc tiết kiệm khơng gian q trình xử lý tăng tốc độ tính tốn Chúng ta minh họa nhận định thơng qua số ví dụ

Bạn có biết tiết kiệm khơng

Bài tốn (Quay xâu) Cho xâu s gồm n ký tự Giá trị n đạt tới 1000 Mỗi lần ta dịch chuyển vòng quanh xâu s sang phải vị trí, ký tự cuối mang đầu trái Sau n lần dịch chuyển ta thu n xâu, xâu thứ n xâu Hãy tăng theo trật tự từ điển n xâu thu

Dữ liệu vào ghi tệp văn XAU INP, dòng giá trị n Dòng thứ hai thân xâu s viết dạng dãy chữ in hoa A Z

Dữ liệu ghi tệp văn XAUQUAY.OUT

Thí dụ, với n=8 s="TIETKIEM" ta có

Sau quay ta thu xâu bảng

(2)

Bài giải

Gọi chiều dài xâu mẫu s n Ta mường tượng phần tử s ghi mặt đồng hồ Dễ thấy, với giá trị i=1 n, cách duyệt vòng tròn xâu mẫu n phần tử, ký tự thứ i, ta nhận xâu gồm n phần tử phần tử thứ i xâu mẫu Thí dụ, với sâu mẫu s=’TIETKIEM’, (n=8), chọn i=3 ta phần tử thứ duyệt bên phải n vị trí theo vịng trịn thu xâu ‘ETKIEMTI’ Ta gọi xâu xâu thứ cấp Từ nhận xét ta thấy quản lý xâu thứ cấp theo vị trí phần tử xâu mẫu Ta ký hiệu [i] xâu có vị trí phần tử xâu mẫu i Lưu ý chiều dài xâu n, tức dài xâu mẫu Theo thí dụ ta có [3]=’ETKIEMTI’ Như vậy, xâu [i] xâu thứ cấp thu từ xâu mẫu sau lần dịch chuyển thứ i Vấn đề lại tăng xâu thứ cấp [1], [2], ,[n] theo trật tự từ điển

Ta dùng thủ tục nhanh theo dẫn QSort để xâu Thế theo dẫn? Thay truy nhập trực tiếp đến đối tượng cần ta truy nhập đến dẫn dành cho đối tượng Trước ta thực phép đặt dẫn để gán cho đối tượng dẫn lấy khoảng n Ta có:

procedure SapChiDan;

var i: integer;

begin

for i:= to n do cd[i]:=i;

Qsort (1,n);

end;

Mảng cd thủ tục chứa dẫn xâu thứ cấp

Để so sánh hai xâu [i] [j] ta dùng hàm Sanh(i,j) Hàm cho ba giá trị sau:

(3)

1: [i]>[j];

-1: [i]<[j];

Theo quy tắc từ điển, ta tìm cặp phần tử khác hai xâu Nếu khơng có cặp hai xâu Nếu có, ta gọi cặp phần tử a (của xâu [i]) b (của xâu [j])

Nếu a > b ta có [i] >[j], ngược lại, a < b ta co' [i] < [j]

Function Sanh (i,j:integer): integer; var

k: integer; begin

for k:=1 to n do begin

if s[i] <> s[j] then begin

if s[i] < s[j] then Sanh:=-1

else Sanh:=1; exit; end; i:=next(i); j:=next(j); end; Sanh:=0; end;

Khi duyệt xâu theo vòng tròn ta ý phần tử sát sau phần tử thứ n Phép lấy phần tử sát sau mô tả hàm Next sau:

function Next (i:integer):integer; begin

if i=n then Next:=1 else Next:=j+1;

end;

Sau xong, ta việc ghi xâu [cd[i]], i=1 n vào tệp

Độ phức tạp tính tốn.

Gọi n chiều dài xâu mẫu Ta phải xếp lại n xâu thứ cấp Giải thuật nhanh QSort đòi hỏi n.log(n) phép so sánh hai xâu, logarit lấy theo số Để so sánh hai xâu có chiều dài n ta phải thực n phép so sánh cặp ký tự Tổng hợp lại tốn có độ phức tạp n2.log(n) phép so sánh ký tự.

ứng dụng

Bài toán quay xâu dùng mã hố trình bầy chi tiết số dịp gần

Bài tập (Các xâu đôi)

(4)

Yêu cầu: Sắp xâu thứ cấp tăng dần theo trật tự từ điển

Dữ liệu vào: Tệp văn STR.INP có cấu trúc sau:

- Dòng thứ nhất: giá trị n; 1<=n<=1000;

- Dòng thứ hai: xâu mẫu S;

- Dòng thứ ba: giá trị m; 1<=m<=1000;

- Tiếp theo m dòng, dòng chứa cặp trị d c cách dấu cách

Dữ liệu ra: Tệp văn STR.OUT chứa m xâu thứ cấp tăng dần, xâu dịng

Thí dụ:

STR.OUT

ABCDE

ADCBE

EBCDA

STR.INP

5

ABCDE

3

2

1

3

Bài tập (Các xâu quay)

Cho xâu s gồm n ký tự Giá trị n đạt tới 1000 Mỗi lần ta dịch chuyển vòng quanh xâu s sang phải i vị trí, ký tự cuối mang dần đầu trái Sau m lần dịch chuyển ta thu m xâu thứ cấpm, khơng tính xâu mẫu Hãy tăng theo trật tự từ điển m xâu thứ cấp thu theo cách

Dữ liệu vào ghi tệp văn XAU.INP, dòng giá trị n biểu diễn chiều dài xâu mẫu

Dòng m giá trị cho biết khoảng dịch chuyển lần quay xâu Dữ liệu ghi tệp văn XAUQUAY.OUT

Thí dụ, với n=8 s="TIETKIEM", sau bốn lần dịch chuyển xâu mẫu , 1, 15 vị trí ta có

XAU INP

EMTIETKI

(5)

MTIETKIE

TIETKIEM

Ngày đăng: 08/04/2021, 17:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w