排序
wyp784035821
这个作者很懒,什么都没留下…
展开
-
冒泡排序
简单的冒泡排序,没什么好说的 #include void BubbleSort(int array[], int len) { int i,j,tmp,exchange; for(i = 0; i { exchange = 0; // 增加一个exchange参数 for(j = len - 1; j >= i; j--) { if(arr原创 2018-01-24 09:44:06 · 133 阅读 · 0 评论 -
直接插入排序
直接插入排序类似打牌,一开始拿到一个数,接下来拿到的数与一开始的数比较若原来的数大,则下标加一,后来的数下标改为原来数的下标,若后来数较大,则原来数不变,后来数下标变为原来数下标加一 #include using namespace std; void insertsort(int a[], int len) { int i,j,tmp; for(i = 1; i原创 2018-01-24 10:21:25 · 156 阅读 · 0 评论 -
shell(希尔)排序
希尔排序其实和直接插入排序差不多,只不过在直接插入排序前把数组变为基本有序的状态,效率有所提高。但也因此,希尔排序是不稳定的。 #include using namespace std; void shellsort(int a[],int len) { int h,i,j,tmp; h为步长 for(h = len/2; h > 0; h = h/2) //希尔排原创 2018-01-24 11:13:18 · 179 阅读 · 0 评论 -
快速排序
快速排序算法步骤: 1、从数列中挑出一个元素,称为 “基准”(pivot), 2、重新排序数列,所有元素比基准值小的摆放在基准左区间,所有元素比基准值大的摆在基准的右区间。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分操作。 3、递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去原创 2018-01-24 16:09:35 · 182 阅读 · 0 评论 -
回溯算法 八皇后
#include <stdio.h> #include <stdlib.h> #define max 8 int queen[max], sum = 0; //queen数组内放的是皇后的纵坐标 void show() //打印输出 { int i; for(i = 0; i < max; i++) { printf("(%d,%d)",i...转载 2018-11-27 02:30:35 · 144 阅读 · 0 评论