c++结构体指针编写插入排序
时间: 2024-05-25 16:08:17 浏览: 105
C++中的结构体指针可以用来进行插入排序。下面是一个例子:
假设我们有一个结构体Person,包含两个成员变量name和age。我们可以创建一个Person类型的指针数组,然后使用插入排序来对其进行排序。
```
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
void insertionSort(Person* arr[], int n) {
for (int i = 1; i < n; i++) {
Person* key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j]->age > key->age) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
int main() {
Person* arr;
arr = new Person{"Tom", 25};
arr = new Person{"Jack", 21};
arr = new Person{"Alice", 23};
insertionSort(arr, 3);
for (int i = 0; i < 3; i++) {
cout << arr[i]->name << " " << arr[i]->age << endl;
}
return 0;
}
```
在这个例子中,我们首先定义了一个Person结构体,然后创建了一个指向Person类型的指针数组arr。在main函数中,我们给数组赋值,并将其传递给insertionSort函数进行排序。排序使用了插入排序算法,将年龄从小到大排序。最后,我们输出排序后的结果。
阅读全文