算法知识
四月的萤火之光
学不可以已
展开
-
内部排序算法:堆排序
基本思想堆的定义n个关键字序列kl,k2,…,kn称为堆,当且仅当该序列满足如下性质之一(简称堆性质):ki≤k2i且ki≤k2i+1 或ki≥k2i且ki≥k2i+1(1≤i≤FLOOR(n/2))若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右转载 2018-05-02 11:30:28 · 311 阅读 · 0 评论 -
归并排序代码实现【递归实现+迭代实现】
1、归并排序--递归实现2、归并排序--迭代实现1、归并排序--递归实现package aa;import java.util.Arrays;public class MergeSort2 { //分解 public static void sort(int[] arr,int low,int high){ if(low<high){ int原创 2018-05-02 22:49:22 · 742 阅读 · 0 评论 -
两种选择排序代码实现(直接选择排序+堆排序)
选择排序1、直接选择排序2、堆排序1、直接选择排序package sort;//选择排序public class SelectSort { public static void sortA(int[] arr,int n){ int tmp;//临时变量 int min;//记录最小值的下标 int compare=0;//比较次数 int c原创 2018-05-02 22:42:21 · 977 阅读 · 0 评论 -
两种交换排序代码实现(冒泡排序+快速排序【可多种方式优化】)
交换排序1、冒泡排序2、快速排序【可多种方式优化】交换排序1、冒泡排序afsafpackage sort;public class BubbleSort { //普通冒泡排序 public static void sortA(int[] arr,int n){ int tmp;//临时变量 int compare=0;//比较趟数 int原创 2018-05-02 22:32:49 · 539 阅读 · 0 评论 -
三种插入排序代码实现 (直接插入排序 +折半插入排序 +希尔排序)
插入排序1、直接插入排序2、折半插入排序3、希尔排序1、直接插入排序package sort;public class InsertSort {//直接插入排序 //有序区 无序区 [前:后] public static void sortA(int[] arr,int n){ int tmp;//临时值 int i,j; for(i=原创 2018-05-02 22:28:11 · 2109 阅读 · 1 评论 -
三种快排及四种优化方式
本文是转载文章,文章的来源:csdn博客博主:silentsharer文章: 三种快排及四种优化方式博文地址:https://blog.csdn.net/hacker00011000/article/details/521761001、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关转载 2018-05-02 21:29:50 · 5691 阅读 · 2 评论 -
图解排序算法(四)之归并排序
本文是转载文章,文章的来源:博客园博主:dreamcatcher-cx文章:图解排序算法(四)之归并排序博文地址:http://www.cnblogs.com/chengxiao/p/6194356.html基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法转载 2018-05-02 21:15:46 · 200 阅读 · 0 评论 -
图解排序算法(三)之堆排序
预备知识堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,转载 2018-05-02 11:41:31 · 194 阅读 · 0 评论 -
堆排序详解
本文是转载文章,文章的来源:csdn博客博主:带鱼兄文章:堆排序详解博文地址:https://blog.csdn.net/daiyudong2020/article/details/52529791基本概念:要了解堆排序,首先要了解什么是堆,要了解堆,还要先了解什么是完全二叉树。一、什么是完全二叉树?完全二叉树(complete bi转载 2018-05-02 11:35:58 · 269 阅读 · 0 评论 -
八大常用排序算法详细分析 包括复杂度,原理和实现
本文是转载文章,文章的来源:csdn博客博主:厚积_薄发文章: 八大常用排序算法详细分析 包括复杂度,原理和实现博文地址:https://blog.csdn.net/yuxin6866/article/details/52771739八大常用排序算法详细分析 包括复杂度,原理和实现如下:1. 冒泡排序1.1 算法原理:S1转载 2018-05-02 22:51:46 · 241 阅读 · 0 评论