Sắp xếp mảng C++

Thuật toán tiêu chuẩn là sử dụng các con trỏ tới điểm bắt đầu/kết thúc và đưa chúng vào trong cho đến khi chúng gặp nhau hoặc giao nhau ở giữa. Trao đổi khi bạn đi

Đảo ngược chuỗi ASCII, tôi. e. một mảng 0-kết thúc trong đó mỗi ký tự phù hợp với 1 ký tự. [Hoặc các bộ ký tự không nhiều byte khác]

voidstrrev[char *head]
{
if [!head] return;
char *tail = head;
while[*tail] ++tail;    // find the 0 terminator, like head+strlen
  --tail;               // tail points to the last real char
// head still points to the first
for[ ; head < tail; ++head, --tail] {
// walk pointers inwards until they meet or cross in the middle
char h = *head, t = *tail;
      *head = t;           // swapping as we go
      *tail = h;
  }
}
// test program that reverses its args
#include

intmain[int argc, char **argv]
{
do {
printf["%s ",  argv[argc-1]];
strrev[argv[argc-1]];
printf["%s\n", argv[argc-1]];
  } while[--argc];

return0;
}

Thuật toán tương tự hoạt động với các mảng số nguyên có độ dài đã biết, chỉ cần sử dụng tail = start + length - 1 thay vì vòng lặp tìm kết thúc

Mảng là một nhóm các mục dữ liệu có liên quan được lưu trữ với một tên duy nhất

Ví dụ, int sinh viên[30];

Ở đây, sinh viên là một tên mảng chứa 30 tập hợp các mục dữ liệu, với một tên biến duy nhất

hoạt động

Các hoạt động của một mảng được giải thích dưới đây -

  • Tìm kiếm - Nó được sử dụng để tìm xem một phần tử cụ thể có hiện diện hay không

  • Sắp xếp - Giúp sắp xếp các phần tử trong một mảng theo thứ tự tăng dần hoặc giảm dần

  • Traversing - Xử lý mọi phần tử trong một mảng, tuần tự

  • Chèn - Giúp chèn các phần tử trong một mảng

  • Xóa - Giúp xóa một phần tử trong một mảng

Trong chương trình này, chúng tôi đang sử dụng kỹ thuật hoán đổi để sắp xếp các phần tử theo thứ tự tăng dần

Logic mà chúng ta đã áp dụng để sắp xếp một mảng theo thứ tự tăng dần như sau -

for[i=0;i

Chủ Đề