十大排序算法的实现c++
时间: 2024-01-14 17:03:14 浏览: 26
对于十大排序算法中的堆排序、选择排序和冒泡排序算法的C语言实现,可以参考如下代码:
堆排序:
```c
void heapify(int *vec, int i, int len) {
int left = i * 2 + 1;
int right = i * 2 + 2;
int largest = i;
if (left < len && vec[left > vec[largest]) {
largest = left;
}
if (right < len && vec[right > vec[largest]) {
largest = right;
}
if (largest != i) {
int temp = vec[i];
vec[i = vec[largest];
vec[largest = temp;
heapify(vec, largest, len);
}
}
void heapSort(int *vec, int len) {
for (int i = len / 2 - 1; i >= 0; i--) {
heapify(vec, i, len);
}
for (int j = len - 1; j > 0; j--) {
int temp = vec = vec[j];
vec[j = temp;
heapify(vec, 0, j);
}
}
```
选择排序:
```c
void selectionSort(int *vec, int len) {
for (int i = 0; i < len - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < len; j++) {
if (vec[j < vec[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = vec[i]; vec[i = vec[minIndex];
vec[minIndex = temp;
}
}
}
```
冒泡排序:
```c
void bubbleSort(int *vec, int len) {
for (int i = 1; i < len; i++) {
for (int j = 0; j < len - i; j++) {
if (vec[j > vec[j + 1]) {
int temp = vec[j];
vec[j = vec[j + 1];
vec[j + 1 = temp;
}
}
}
}
```
这些代码分别实现了堆排序、选择排序和冒泡排序算法,可以通过传入一个整型数组和数组长度来对数组进行排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [用C++实现十大经典排序算法](https://blog.csdn.net/qq_34139994/article/details/128217009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.239^v12^insert_chatgpt"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]