自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ChanJose的博客

别让平凡的人生活出平庸的人生

  • 博客(10)
  • 收藏
  • 关注

原创 C++ 桶排序(BucketSort)

一、思路 是将[0,1]区间划分为n个等长的子区间。然后,将各个元素按照自己所属的区间放入相应的桶中,只需要将每个桶的元素排好序,依次输出各个桶内的元素,就得到了有序的元素序列。二、实现程序:#include <iostream>using namespace std;const int offset = 105; // 为桶的边界const int ...

2019-04-08 08:28:45 11228 4

原创 C++ 归并排序(MergeSort)

一、思路:稳定排序 (1)划分:一直调用划分过程,直到子序列为空或只有一个元素为止,共需log2(n); (2)归并:将两个子序列从小到大合并为一个序列二、实现程序:// 归并排序:(二路归并)// (1)递归分解数组;// (2)合并有序的序列#include <iostream>using namespace std;// 合并两...

2019-04-08 08:25:44 720

原创 C++ 冒泡排序(BubbleSort)

一、思路:冒泡排序算法原理:1.比较相邻的元素。如果第一个数比第二个数大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。(因为最后一个已经排好,是最大的数)4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。(接着排第二大的数,一直下去)...

2019-04-08 08:23:16 3256

原创 C++ 希尔排序(ShellSort)

一、思路: 希尔排序:又称缩小增量排序,是一种改进的插入排序算法,是不稳定的。 设排序元素序列有n个元素,首先取一个整数gap<n作为间隔,将全部元素分为gap个子序列,所有距离为gap的元素放在同一个子序列中,在每一个子序列中分别施行直接插入排序。然后缩小间隔gap,重复上述的子序列和排序工作。二、实现程序:#include <iostre...

2019-04-08 08:18:58 406

原创 C++ 折半插入排序(BinaryInsertSort)

一、思路: 较插入排序,减少了比较的次数,但是插入时间还是一样。 (1)按二分查找的方法,查找V[i]在V[0],V[1]…V[i-1]中插入的位置; (2)将插入位置的元素向后顺移。二、实现程序:// 二分插入:较插入排序,减少了比较的次数,但是插入时间还是一样// 时间复杂度还是:O(n*n)#include <iostream&g...

2019-04-08 08:15:53 550

原创 C++ 直接插入排序(InsertSort)

一、思路 当插入第i(i>=1)个元素时,前面的V[0], V[1], …,V[i-1]已经排好序。 用V[i]的排序码与V[i-1],V[i-2],…,的排序码顺序进行比较,找到插入位置。然后,将V[i]插入,原来位置上的元素向后顺移。二、实现程序:#include <iostream>using namespace std;const...

2019-04-08 08:13:45 4670

原创 C++ 堆排序(HeapSort)

一、思路:(1)将数组arr[0~n-1]调整形成最大堆; (2)取堆顶点(即取最大值)放到数组arr[n-1]的位置,即将arr[0]与arr[n-1]交换位置; (3)调整arr[0]到arr[n-2]重新形成最大堆; (4)同理,取堆顶arr[0](即取最大值)放到数组arr[n-2]位置,即交换arr[0]与arr[n-2]位置; (5)重复以上步...

2019-04-03 23:39:02 677

原创 C++ 选择排序(selectionSort)

一、思路 每次取剩下没排序的数中的最小数,然后,填到对应位置。(可以使用a[0]位置作为暂存单元) 如下: 二、实现程序:#include <iostream>using namespace std;const int maxSize = 100;template<class T>void Sele...

2019-04-03 23:00:00 347

原创 C++ AOE网络

一、思路(你可以用拓扑排序来做,但我这里没用拓扑排序) (1)求事件Vi的最早可能开始时间是从源点V0到顶点Vi的最长路径长度。 如V0=0, V1=6,V2=4,V3=5;V4事件要等V1和V2事件完成后才可以进行,所以要取事件用的最长的时间,即V4=6+1=7,同样道理得出其他时间。 (2)事件Vi的最迟允许开始时间Vl[i]是在保证汇点Vn...

2019-04-03 22:19:52 1147

原创 C++ 拓扑排序(AOV网络)

一、思路 先扫描所有顶点,把入度为0的顶点(如C,E)进栈。然后,取栈顶元素,退栈,输出取得的栈顶元素v(即入度为0的顶点v)。接着,把顶点v的邻接顶点w的入度减1,如果w的入度变为0,则进栈。接着,取顶点w的兄弟结点(即取顶点v的邻接顶点w的下一邻接顶点),做同样的操作。重复上面步骤,直到输出n个顶点。如上图:(1)扫描所有顶点,把入度为0的顶点进栈:将顶...

2019-04-01 21:13:45 1001

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除