首页 > 其他分享 >堆排序

堆排序

时间:2022-09-20 20:37:46浏览次数:60  
标签:dad arr int HeapSort 堆排序 len son

void HeapSort(int arr[],int start,int end)
{
	int dad = start;
	int son = dad * 2 + 1;
	while(son<=end)
	
	{
		if( son+1<=end && arr[son]< arr[son+1])
		son++;
		if(arr[dad] > arr[son]) return ;
		else {
			swap(arr[dad] ,arr[son]);
			dad = son;
			son = dad * 2 +1;
		}
	}
}

void Heap(int arr[],int len)
{
	for(int i = len/2-1; i>=0;i--)
	{
		HeapSort(arr,i,len);
	}
	for(int i = len-1;i>0;i--)
	{
		swap(arr[0],arr[i]);
		HeapSort(arr,0,i-1);
	}
}

标签:dad,arr,int,HeapSort,堆排序,len,son
From: https://www.cnblogs.com/shenxiaodou/p/16712360.html

相关文章

  • 堆排序
    packagecom.lianzhu.filemanage.utils;importjava.util.Stack;/***栈排序*@description:栈的特性:先进后出如空数组【】*@step1:有一串数字4,8,7,9,2,6......
  • 堆排序 与 比较器
    堆排序假如给你一无序的数组,经过堆排序获得一组降序的数组1、首先我们将数组遍历,进行heapInsert,变为一个大根堆,建立堆的过程方法一:正序遍历+heapInsertO(N*logN)当需......
  • 经典排序之堆排序
    堆排序思路堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分......
  • 由浅入深!一文带你彻底明白堆排序
    本文中所有的代码全都是大根堆!实现语言是Java图片来源都是这位大神的,大神的文章也给了我很多启发数据结构之堆堆排序这个视频通俗易懂从什么是堆,什么是堆化,再到实现......
  • 十大排序算法之【堆排序】
    堆排序代码://头文件省略voidheapify(vector<int>&in,intbottom,inttop){intlargest=top;intlson=top*2+1;intrson=top*2+1;if(lson......
  • 快速排序和堆排序
    python快速排序、堆排序、计数排序、桶排序、基数排序_一只什么都不懂的码农的博客常用排序算法总结和对比_玖玖拾月陆的博客-CSDN博客_各种排序算法的总结和比较#快速......