简介
排序算法总共可分为四类:
序号 | 排序名称 | 基础算法 | 优化算法 |
---|---|---|---|
1 | 插入排序 | 直接插入排序 | 希尔排序 |
2 | 选择排序 | 简单选择排序 | 堆排序 |
3 | 交换排序 | 冒泡排序 | 快速排序 |
4 | 归并排序 | 归并排序 | 归并排序 |
快速排序其实是对冒泡排序的优化。
提示:下附代码,亲测可用
1. 基本快速排序
快速排序基于递归。
基本步骤主要包括:
- 选定基准点,将小于基准点的数据放于左边,大于基准点的数据放于右边。
- 分别对基准点左边和右边的数据递归进行快速排序。
代码如下:
#include <iostream>
using namespace std;
#define MAXSIZE 13
void swap(int k[], int low, int high)
{
int tmp = k[low];
k[low] = k[high];
k[high] = tmp;
}
int Partition(int k[], int low, int high)
{
int point;
point = k[low];
while (low < high)
{
while (low < high and k[high] >= point)
{
high--;
}
swap(k, low, high);
for (int i = 0; i < 13; i++)
cout << k[i] << " ";
cout << endl;
while (low < high and k[low] <= point)
{
low++;
}
swap(k, low, high);
}
}
void QSort(int k[],