cho mảng số nguyên A gồm n phần tử (N<=100) viết chương trình thực hiện các yêu cầu sau:
-viết thủ tục nhập dữ liệu cho mảng A
-sử dụng thủ tục để sắp xếp lại các mảng theo thứ tự không tăng
Sắp xếp chương trình A gồm N các số nguyên thành dãy không giảm( trong đó sử dụng chương trình con để hoán đổi vị trí 2 số)
Cho dãy các số A = [3, 1, 0, 10, 13, 16, 9, 7, 5, 11].
a) Viết chương trình mô tả thuật toán tìm kiếm phần tử C = 9 của dãy trên. Tính thời gian chính xác thực hiện công việc tìm kiếm này.
b) Giả sử dây A ở trên đã được sắp xếp theo thứ tự tăng dần: A= [0,1,3,5,7,9,10,11,13, 16]. Viết chương trình tìm kiếm nhị phân để tìm kiếm phân tử C = 9, đo thời gian thực hiện thuật toán. So sánh với kết quả 1ìm kiếm ở câu a.
Viết chương trình nhập vào và in ra 1 dãy các số nguyên. Sắp xếp dãy này theo yêu cầu ( tăng hoặc giảm dần)
Cho dãy a gồm n số nguyên a1..an. Sắp xếp dãy a theo chiều không tăng. In dãy vừa sắp xếp ra màn hình
Viết một chương trình thực hiện các công việc sau:
- Nhập từ bàn phím 1 dãy A gồm N số nguyên (với N được nhập từ bàn phím).
- Sắp xếp dãy số đó theo chiều giảm dần.
- In ra mà hình tất cả các phần tử chẵn
- Tìm và đưa ra chỉ số của phần tử có gía trị = K (với K là số nguyên và được nhập từ bàn phím).
Bạn có một hoán vị: một mảng a = [a1, a2,…, an] gồm các số nguyên phân biệt từ 1 đến n. Độ dài của hoán vị n là số lẻ. Hãy xem xét thuật toán sắp xếp hoán vị theo thứ tự tăng dần sau đây. Thủ tục trợ giúp của thuật toán, f (i) , nhận một đối số duy nhất i (1≤i≤n − 1) và thực hiện như sau. Nếu ai> ai + 1, giá trị của ai và ai + 1 được trao đổi. Nếu không, hoán vị không thay đổi. Thuật toán bao gồm các lần lặp, được đánh số bằng các số nguyên liên tiếp bắt đầu bằng 1 . Trên tôi -lặp lại thứ, thuật toán thực hiện như sau:
nếu tôi là số lẻ, gọi f (1), f (3),…, f (n − 2) ;
nếu tôi là chẵn, gọi f (2), f (4),…, f (n − 1) .
Có thể chứng minh rằng sau một số lần lặp lại hữu hạn, hoán vị sẽ được sắp xếp theo thứ tự tăng dần. Sau bao nhiêu lần lặp lại điều này sẽ xảy ra lần đầu tiên?
Input:
Đầu vào Mỗi thử nghiệm chứa nhiều trường hợp thử nghiệm. Dòng đầu tiên chứa số lượng trường hợp thử nghiệm t (1≤t≤10 ^ 4 ). Sau đây là mô tả các trường hợp kiểm thử. Dòng đầu tiên của mỗi trường hợp kiểm tra chứa một số nguyên n (3≤n≤2⋅10 ^ 5−1; n là lẻ) - độ dài của hoán vị. Dòng thứ hai chứa n các số nguyên phân biệt a1, a2,…, an (1≤ai≤n ) - hoán vị chính nó. Đảm bảo rằng tổng của n trên tất cả các trường hợp thử nghiệm không vượt quá 2⋅10 ^ 5−1
Output:
. Đầu ra Đối với mỗi trường hợp thử nghiệm, in số lần lặp lại mà sau đó hoán vị sẽ được sắp xếp theo thứ tự tăng dần lần đầu tiên. Nếu hoán vị đã cho đã được sắp xếp, hãy in ra 0.
Input:
3
3
3 2 1
7
4 5 7 1 3 2 6
5
1 2 3 4 5
ouput:
3
5
0
Ghi chú Trong trường hợp thử nghiệm đầu tiên, hoán vị sẽ thay đổi như sau: sau 1 lần lặp -st: [2,3,1] ; sau 2 -nd lần lặp: [2,1,3] ; sau 3 -lặp lại thứ ba: [1,2,3] . Trong trường hợp thử nghiệm thứ hai, hoán vị sẽ thay đổi như sau: sau 1 lần lặp -st: [4,5,1,7,2,3,6] ; sau 2 -nd lần lặp: [4,1,5,2,7,3,6] ; sau 3 -lặp lại thứ ba: [1,4,2,5,3,7,6] ; sau 4 -lần lặp thứ: [1,2,4,3,5,6,7] ; sau 5 -lặp lại thứ: [1,2,3,4,5,6,7] . Trong trường hợp thử nghiệm thứ ba, hoán vị đã được sắp xếp và câu trả lời là 0 .
Viết chương trình tra cứu tên theo điểm thi của học sinh trong lớp. Chương trình cho phép người dùng nhập vào khoảng điểm số cần tìm kiếm (ví dụ từ 6 đến 8). Chương trình kiểm tra và thông báo tên của học sinh có điểm số nằm trong khoảng tương ứng. Giải bài toán trong hai trường hợp: điểm được sắp xếp theo thứ tự ngẫu nhiên như trong Nhiệm vụ 1 hoặc điểm được sắp xếp theo thứ tự tăng dẫn như sau:
Sơn 5.6
Huyền 7.4
Nam 7.8
Hùng 8.4
Hương 8.9
Hà 9.5
Mọi người có thể làm dưới dạng bài C++ được không ạ :((
Cho dãy a gồm n phần tử a1, a2, a3,....an
a) Số âm đầu tiên và chỉ số của nó
b) Số dương đầu tiên và chỉ số của nó
c) In ra tất cả số chẵn và số lẻ
d) Sắp xếp các dãy tăng dần