算法排序
库里小球迷
小学僧一名,大家多多关照
展开
-
十大排序算法-----冒泡排序
冒泡排序 简单介绍: 1,十大排序之一 2, 看代码: package 十大排序; import java.util.Arrays; public class bubble_Sort { public void sort(int[] arr,int n) { //先判断只有一个元素的情况 if (n <= 1) return; for (int i = 0; i &l...原创 2019-09-03 21:04:51 · 267 阅读 · 0 评论 -
十大排序算法-----选择排序
选择排序 本周学习的是选择排序,首先给他一个简单的介绍吧 选择排序:就是在首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 很多选择排序在每一轮比较会记住最小数字的下标,在这一轮比较结束后将最小的数和这一轮比较的第一个数交换 其实还有一种伪排序法,就是不记录下标,直接交换!...原创 2019-09-08 09:48:29 · 184 阅读 · 0 评论 -
十大排序算法------插入排序
插入排序 简单介绍: 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。从而实现无序序列变成有序序列! 举一个例子: 首先定义一个无序序列的几个数字,例如 5 2 1 3 8 这五个数字,将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。 什么意思呢? 就是就是把 5 这个数字当...原创 2019-09-09 15:29:26 · 113 阅读 · 0 评论 -
十大排序算法-----希尔排序
本周我们来学习希尔排序! 希尔排序 先做一个简单的介绍: 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 1,插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 2,但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位; 例如: 定义一个无需数组{5,1,9,1...原创 2019-09-16 21:35:41 · 150 阅读 · 0 评论 -
十大排序算法-----归并排序
归并排序 原理: 归并排序是一种概念上最简单的排序算法,归并排序是基于分治法的。归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。 算法基本步骤 1,申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 2,设定两个指针,最初位置分别为两个已经排序序列的起始位置; 3,比较两个指针所指向的元素...原创 2019-09-21 17:29:31 · 505 阅读 · 0 评论 -
十大排序算法-----快速排序
快速排序 高快省的排序算法 其实快速排序是基于一种叫做“二分”的思想。 假设我们现在对“3,5,8,1,2,9,4,7,6”这个9个数进行排序。首先在这个序列中随便找一个数作为基准数。 从数列中挑出一个元素,称为 “基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这...原创 2019-09-22 16:59:06 · 178 阅读 · 0 评论 -
十大算法排序-----堆排序
堆排序 简单介绍: 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 ...原创 2019-09-28 10:14:39 · 235 阅读 · 0 评论 -
算法十大排序------计数排序
计数排序 简单介绍: 1,花O(n)的时间扫描一下整个序列 A,获取最小值 min 和最大值 max 2,开辟一块新的空间创建新的数组 B,长度为 ( max - min + 1) 3,数组 B 中 index 的元素记录的值是 A 中某元素出现的次数 4,最后输出目标整数序列,具体的逻辑是遍历数组 B,输出相应元素以及对应的个数 举一个例子吧! 对[2, 5, 3, 0, 2, 3, 0, 3]...原创 2019-09-28 16:04:54 · 144 阅读 · 0 评论