博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法导论(第三版)所有排序算法的实现
阅读量:7217 次
发布时间:2019-06-29

本文共 1234 字,大约阅读时间需要 4 分钟。

hot3.png

本文章代码来自于项目:

欢迎大家一起参与!我会不定时更新!

package acm;import java.util.Arrays;public class SortAlgorithms{	//插入排序	public static void InsertionSort(int[] arr)	{		int len = arr.length;		int i,j;		int key;		for(j=1;j
=0 && arr[i]>key) { arr[i+1]=arr[i]; i--; } arr[i+1]=key; } } //选择排序 public static void SelectionSort(int[] arr) { int len = arr.length; int min; for(int i=0; i
i; j--) { if(arr[j]
1) { temp=arr[hLen-1]; arr[hLen-1]=arr[0]; arr[0]=temp; hLen--; max_heapify(arr, hLen, 0); } } private static void buildMaxHeap(int[] arr) //从无序数组中构造一个最大堆, n*lgn { int hLen = arr.length; int begin= hLen/2-1; for(int i=begin;i>=0;i--) { max_heapify(arr,hLen, i); } } private static void max_heapify(int[] arr, int hLen, int i) //用于调整堆,维护最大堆的性质,lgn { int left = 2*i+1; //i的左孩子,因为数组中下标是从0开始的 int right =2*i+2; //i的右孩子,因为数组中下标是从0开始的 int largest=i; if(left
arr[i]) { largest = left; } if(right
arr[largest]) { largest = right; } if(i!=largest) { int temp=arr[largest]; arr[largest]=arr[i]; arr[i]=temp; max_heapify(arr, hLen, largest); } }}

转载于:https://my.oschina.net/u/923087/blog/266538

你可能感兴趣的文章
从输入 URL 到页面加载完成的过程中都发生了什么事情?
查看>>
实例讲解JQuery中this和$(this)区别
查看>>
centos 7 静态ip地址模板
查看>>
影响系统性能的20个瓶颈
查看>>
shell的详细介绍和编程(上)
查看>>
软件开发性能优化经验总结
查看>>
面试题编程题05-python 有一个无序数组,如何获取第K 大的数,说下思路,实现后的时间复杂度?...
查看>>
kendo grid序号显示
查看>>
Spring 教程(二) 体系结构
查看>>
Indexes
查看>>
2.Web中使用iReport 整合----------创建html格式的
查看>>
异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
查看>>
最全三大框架整合(使用映射)——applicationContext.xml里面的配置
查看>>
初步理解Java的三大特性——封装、继承和多态
查看>>
知识点积累(一)
查看>>
iphone-common-codes-ccteam源代码 CCFile.m
查看>>
python:浅析python 中__name__ = '__main__' 的作用
查看>>
修改tomcat端口后不能IP访问问题
查看>>
review board
查看>>
URAL 1495 One-two, One-two 2
查看>>