算法知识
四月的萤火之光
学不可以已
展开
-
内部排序算法:堆排序
基本思想 堆的定义 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 · 303 阅读 · 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 · 730 阅读 · 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 · 970 阅读 · 0 评论 -
两种交换排序代码实现(冒泡排序+快速排序【可多种方式优化】)
交换排序 1、冒泡排序 2、快速排序【可多种方式优化】 交换排序 1、冒泡排序 afsaf package sort; public class BubbleSort { //普通冒泡排序 public static void sortA(int[] arr,int n){ int tmp;//临时变量 int compare=0;//比较趟数 int原创 2018-05-02 22:32:49 · 527 阅读 · 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 · 2105 阅读 · 1 评论 -
三种快排及四种优化方式
本文是转载文章,文章的来源:csdn博客 博主:silentsharer 文章: 三种快排及四种优化方式 博文地址:https://blog.csdn.net/hacker00011000/article/details/52176100 1、快速排序的基本思想: 快速排序使用分治的思想,通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关转载 2018-05-02 21:29:50 · 5676 阅读 · 2 评论 -
图解排序算法(四)之归并排序
本文是转载文章,文章的来源:博客园 博主:dreamcatcher-cx 文章:图解排序算法(四)之归并排序 博文地址:http://www.cnblogs.com/chengxiao/p/6194356.html 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法转载 2018-05-02 21:15:46 · 190 阅读 · 0 评论 -
图解排序算法(三)之堆排序
预备知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图: 同时,我们对堆中的结点按层进行编号,转载 2018-05-02 11:41:31 · 181 阅读 · 0 评论 -
堆排序详解
本文是转载文章,文章的来源:csdn博客 博主:带鱼兄 文章:堆排序详解 博文地址:https://blog.csdn.net/daiyudong2020/article/details/52529791 基本概念: 要了解堆排序,首先要了解什么是堆, 要了解堆,还要先了解什么是完全二叉树。 一、什么是完全二叉树? 完全二叉树(complete bi转载 2018-05-02 11:35:58 · 259 阅读 · 0 评论 -
八大常用排序算法详细分析 包括复杂度,原理和实现
本文是转载文章,文章的来源:csdn博客 博主:厚积_薄发 文章: 八大常用排序算法详细分析 包括复杂度,原理和实现 博文地址:https://blog.csdn.net/yuxin6866/article/details/52771739 八大常用排序算法详细分析 包括复杂度,原理和实现如下: 1. 冒泡排序 1.1 算法原理: S1转载 2018-05-02 22:51:46 · 233 阅读 · 0 评论