浅谈java中常见的排序
学过java的人都知道,排序这一部分初次接触感觉还是有点难以理解,很多地方也会用到。然而,在java中常见的排序方法:冒泡排序,选择排序,插入排序等等。下面就让我们一起揭开他们神秘的面纱。
冒泡排序:想学好排序,最重要的是要知道它们的实现的原理,我们可以分三步来说明冒泡排序的原理:下面以数组为例:
1、 逐一比较数组中相邻的两个元素,如果后面的数字小于前面的数字,就交换先后元素。
2、 经过一个轮次的比较,一定有一个最大的排在最后的位置。
3、 每次比较剩下的元素,经过n-1次比较,可以实现排序。
简单说: 比较相邻元素,大的向后交换。
根据这些原理我们就推算出循环的条件,简单实现代码:
从代码中我们可以看到,这里用到了交换原理的应用。
选择排序:同样我们需要知道它的实现原理,也可以分为三步来看:
1、将数组中的每个元素,与第一个元素比较如果这个元素小于第一个元素,就将这个两个元素交换。
2、使用1的规则, 可以选择出一个最小元素放到第一个位置。
3、经过n-1轮比较完成排序。
简单说:每轮选择最小的放到前面。
简单的实现代码如下:
插入排序:实现原理如下:
1、 将数组分为两部分,将后部分的第一个元素逐一与前部分每一元素比较,如果当前元素小,就一点被比较元素。
2、 找到合理位置插入。
具体简单实现代码:
排序在java中还是一个比较重要的知识点。同时也是一个比较难以掌握的知识点。首先,你必须知道他们的实现原理,才能说后面的实现和应用,如果你开始不懂什么意思,并且想学习它,请把这些代码敲20遍。不要问为什么!因为我也敲20遍以上!以上是我个人对java中常见排序的感受。初次写,有不足的地方敬请原谅!
http://www.cnblogs.com/wwyuan/archive/2012/07/02/2573411.html