自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 三向切分的快速排序

对于存在大量重复元素的数组,这种方法比标准的快速排序的效率高得多。

2015-07-28 11:28:27 621

原创 堆排序

#include using namespace std; void heap(int *a,int i,int size){ int left=2*i; int right=2*i+1; int tag=i; if(i<=size/2){ if(lefta[tag]) tag=left; if(righta

2015-07-19 17:09:23 265

原创 归并排序

/* 一种基于比较的排序算法,基本思想为分冶。 时间复杂度为θ(nlogn)。 性质:稳定,即相等的项彼此的相对位置不会发生改变。 */ void mergeSort(int* A,int x,int y,int* T) { if(y-x>1) { int m=x+(y-x)/2; //划分 int p=x,q=m,i=x; mergeSort(A,x,m,T);//递归求解

2015-07-17 18:53:45 253

原创 希尔排序

/*交换不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。 思想是使数组中任意间隔为h的元素都是有序的。 实现希尔排序的一种方法是对于每个h,用插入排序将h个子数组独立地排序。但因为子数组是相互独立的,一个更简单的方法是 在h-子数组中将每个元素交换到比它大的元素之前去(将比它大的元素向右移动一格)。 希尔排序更高效是因为权衡了子数组的规模和有序性。 对于中等大小的数组,它

2015-07-17 17:53:46 357

原创 带哨兵与不带哨兵的插入排序

/*插入排序所需的时间取决于输入中元素的初始顺序 */ #include using namespace std; const int arraySize=10; int main(){ int a[10]={1,6,2,4,3,5,8,7,9,0}; int temp; for(int i=0;i<arraySize;i++){ for(int j=i; j>0 && a[j]<a

2015-07-17 17:19:44 1117

原创 选择排序

首先,找到数组中最小的那个元素,其次,讲它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。 对于长度为N的数组,选择排序需要大约N^2/2次比较和N次交换。 特点:运行时间和输入无关。数据移动是最少的。#include using namespace std; con

2015-07-17 17:03:30 252

空空如也

空空如也

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

TA关注的人

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