在MySort.cpp中完成三个排序方法。 bubbleSort(int* arr, int len); 实现冒泡排序,需要排序的数组为arr,数组长度为len quickSort(int* arr, int len); 实现快速排序 heapSort(int* arr, int len); 实现堆排序
时间: 2023-08-28 19:21:39 浏览: 103
好的,我已经了解了你的要求。下面是三种排序方法的实现代码:
1. 冒泡排序
```cpp
void bubbleSort(int* arr, int len) {
for (int i = 0; i < len - 1; ++i) {
for (int j = 0; j < len - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
2. 快速排序
```cpp
void quickSort(int* arr, int len) {
if (len <= 1) return;
int pivot = arr[len / 2];
int i = 0, j = len - 1;
while (i <= j) {
while (arr[i] < pivot) ++i;
while (arr[j] > pivot) --j;
if (i <= j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
++i;
--j;
}
}
quickSort(arr, j + 1);
quickSort(arr + i, len - i);
}
```
3. 堆排序
```cpp
void heapify(int* arr, int len, int i) {
int largest = i;
int l = 2 * i + 1;
int r = 2 * i + 2;
if (l < len && arr[l] > arr[largest]) largest = l;
if (r < len && arr[r] > arr[largest]) largest = r;
if (largest != i) {
int temp = arr[i];
arr[i] = arr[largest];
arr[largest] = temp;
heapify(arr, len, largest);
}
}
void heapSort(int* arr, int len) {
for (int i = len / 2 - 1; i >= 0; --i) {
heapify(arr, len, i);
}
for (int i = len - 1; i >= 0; --i) {
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
heapify(arr, i, 0);
}
}
```
以上就是三种排序方法的实现代码,你可以在MySort.cpp文件中使用它们。
阅读全文