
排序算法
Jasablanca
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
希尔排序
#include <stdio.h> #define n 8 //希尔排序 /* 算法思想: 1.取一个小于n的步长d1,把表中全部记录分为d1个组。组内进行直接插入排序。 所有距离为d1的倍数的记录放在同一个组里。这句话要理解清楚。比如d=2的时候,2,3,4,1,7,8,5,6.那2,4,7,5是一组。 2.取第二个步长d2<d1,重复上述过程直到最后一个增量dk=1 fo...原创 2019-05-02 17:56:39 · 80 阅读 · 0 评论 -
折半查找算法
#include <stdio.h> #define n 10 int main() { int a_size=7; int left=0; int right=a_size-1; int mid; int a[n]={1,2,3,4,5,6,7}; int target=2; printf("折半查找算法:\n"); ...原创 2019-04-30 21:38:08 · 204 阅读 · 0 评论 -
直接插入排序
#include <stdio.h> #define n 10 int main() { int a[n]={3,2,1,4}; int a_size=4; int temp=0; bool flag; int x,left,right; printf("直接插入排序算法实现:\n"); printf("原序列:"); for(in...原创 2019-04-30 19:43:50 · 108 阅读 · 0 评论 -
归并排序(二)
#include <stdio.h> #define n 8 //归并排序递归算法 /* */ void MergeSort(int a[],int low,int high) { printf("low=%d high=%d\n",low,high);//递归的调试技巧。打印。 int b[n]; int k=low;//不是0 for(int...原创 2019-05-05 19:07:40 · 108 阅读 · 0 评论 -
归并排序(一)
#include <stdio.h> #define n 8 //归并排序非递归算法(即迭代) /* 算法思想是: 开一个辅助数组。在辅助数组内进行比较。low,mid,high。把小的复制到a[]中去。但是我感觉这样跟递归式的归并有较大差别。 我感觉递归式的归并的最底层是元素和紧挨着的元素进行比较。表达不好,有机会再修改。 非递归,即迭代,与递归最大的区别在于实现的方向不同。 递归...原创 2019-05-05 16:24:14 · 103 阅读 · 0 评论 -
堆排序算法
#include <stdio.h> #define n 9 //堆排序算法 /* */ int AdjustDown_maxheap(int a[],int i,int len)//向下调整 { int temp; { if(2*i+1<=len) { if(a[i]<a[2*i]||a[i]&...原创 2019-05-05 11:16:51 · 92 阅读 · 0 评论 -
简单选择排序
#include <stdio.h> #define n 8 //简单选择排序 /* */ int simple_select(int a[],int m)//原因是:宏N与函数参数N重名。error: expected ',' or '...' before numeric constant|| { for(int i=0;i<m;i++) { ...原创 2019-05-04 22:32:05 · 253 阅读 · 0 评论 -
快速排序
#include <stdio.h> #define n 8 //快速排序 /* */ int partion(int a[],int low,int high) { int base_point=a[low]; while(low<high) { while(low<high&&a[high]>base_...原创 2019-05-02 23:33:33 · 95 阅读 · 0 评论 -
冒泡排序
#include <stdio.h> #define n 8 //冒泡排序 /* 从前往后比较,把最大的放在最后 */ int main() { int a[8]={7,8,5,1,2,3,4,6}; printf("冒泡排序算法实现:\n"); printf("原序列:"); for(int i=0;i<n;i++) { ...原创 2019-05-02 22:06:39 · 93 阅读 · 0 评论 -
折半插入排序
#include <stdio.h> #define n 10 int binary_s(int b[],int i,int target) { int left=0; int right=i-1; int mid; while(left<=right) { mid=(left+right)/2; if(b...原创 2019-05-01 12:06:19 · 155 阅读 · 0 评论