排序算法
目录 快速排序(基于交换) 特性 思想 代码 冒泡排序(交换排序) 思想: 特点: 代码: 直接插入排序(插入排序) 思想: 特点: 代码: 折半插入排序(插入排序) 思想: 特点: 代码: 希尔排序(插入排序) 思想: 特点: 代码: 简单选择排序: 思想: 特点: 代码: 堆排序 (选择排序) 思想:按照层次遍历的顺序标号映射到数组中。 特点: 代码: 归并排序 特性 思想 代码 基数排序 思想: 特点: 快速排序(基于交换) 特性 每次使一个数归位。不稳定 思想 每次partition划分数组为两部分并返回下标。随后递归地对左右序列快速排序。 代码 int Partition(int arr[],int left,int right) { int i = left; int j = right; int pivotindex = left; //基准坐标可以任意选 int pivotnum = arr[pivotindex]; //基准数 cout << "pivotnum = " << pivotnum << endl; while(i < j) //当i==j的时候,i和j的下标就是基准数的正确位置。 { while (i < j && arr[j] >= pivotnum) //先从后面往前找小于基准数 j--; arr[i] = arr[j]; //复制到前面i的位置