文档章节

希尔排序和堆排序

颜建海
 颜建海
发布于 2014/05/08 23:34
字数 231
阅读 108
收藏 6
#include<iostream>
using namespace std;
void xierSort(int *a ,int n){
	int h;
	for(int i=n/2;i>=1;i/=2){
		
	for(int j=i;j<n;j++){
		int temp=a[j];
	 for( h=j-i;h>=0;h=h-i){
 		if(temp<a[h]){
		 	a[h+i]=a[h];
		 }else
		 break;
 	}
	 a[h+i]=temp;
	 }
	 }
}
void maxhead(int *a,int head,int len){
	while(head<=len&&2*head+1<len){
		int left=2*head+1;
		int max=head;
		if(left<len&&a[head]<a[left])
		 {
 			 max=left;
		 }
		 if(left+1<len&&a[left+1]>a[max])
		   max=left+1;
		   if(max!=head){
		   int temp=a[max];
		   a[max]=a[head];
		   a[head]=temp;
		 head=max;
		   }else
		   break;
	}
}
void headSort(int *a,int n){
	for(int i=n/2-1;i>=0;i--)
	  maxhead(a,i,n);
	  for(int j=n-1;j>0;j--){
  		int temp=a[0];
  		a[0]=a[j];
  		a[j]=temp;
  		maxhead(a,0,j);
  	}
}
void Bubble(int *a ,int n){
	for(int i=0;i<n;i++)
	for(int j=n-1;j>i;j--){
		if(a[j]<a[j-1]){
			int temp=a[j-1];
			a[j-1]=a[j];
			a[j]=temp;
		}
	}
}
int main(){
	int a[]={
		3,2,1,5,8
	};
//	xierSort(a,8);
	//Bubble(a,8);
	headSort(a,5);
	for(int i=0;i<5;i++)
	cout<<a[i]<<' ';
}


© 著作权归作者所有

颜建海
粉丝 14
博文 141
码字总数 52360
作品 0
厦门
产品经理
私信 提问
算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入...

湖南小影
2017/05/18
0
0
算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入...

湖南小影
2017/05/18
0
0
算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入...

湖南小影
2017/05/18
0
0
算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入...

湖南小影
2017/05/18
0
0
算法系列【希尔排序】篇

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 1. 平方阶 (O(n2)) 排序各类简单排序:直接插入...

湖南小影
2017/05/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

反编译9.png图片还原

本文链接:https://blog.csdn.net/a1140778530/article/details/10528507 经常反编译apk文件找资源,9.png的文件处理起来很麻烦。 最近使用Ant自动编译打包app时,从别处搜罗来的9.png文件导...

shzwork
10分钟前
2
0
Shell脚本应用 – for、while循环语句

一、for循环语句 在实际工作中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令相同。例如:根据通讯录中的姓名列表创建系统账号等情况。 当面对各种...

linux-tao
10分钟前
2
0
RPA风潮下企业财务工作模式的变革

RPA(机器人流程自动化)在财务领域的应用,正给企业财务带来前所未有的改变。 前RPA时代,财务领域面临的痛点 在RPA机器人应用之前,企业财务工作进程的推进,主要通过财务人员人工操作或信...

UiBot
15分钟前
3
0
Hive之命令行修改表注释

最近遇到一个需求,在不重建表的情况下,修改表的注释,hive有没有类似关系型数据库的SQL命令来修改呢,找了下,亲测有效,如下List-1 List-1 hive>use your_schemahvie>ALTER TABLE tabl...

克虏伯
15分钟前
3
0
是什么,它的作用是什么

在HTML文档的首部往往会有这么一句话<!DOCTYPE html>,许多时候我们忽视了它的存在,它实际上是一个声明,告诉浏览器用哪种HTML版本的规范来解读HTML文档。 尽管我们不给出这句声明浏览器照样...

前端老手
21分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部