概述
这节我们来了解一下java中常见的三种排序方式,这里我们说的是
1.冒泡排序
2.选择排序
3.插入排序
排序中要考虑到的主要因素是时间复杂度和空间复杂度,时间我们可以用
System.currentTimeMillis()这个来查看。
下面我们依次来说明
1.冒泡排序
所谓冒泡排序就是从前到后遍历选出最大值放到最后一个,然后在遍历剩下的找出剩
下中最大的放到倒数第二个,依次直至遍历到最后一个,也就是最小的放到第一个,
使其有序。下面我们来举例说明:
这里要说明的是这里有两个for循环嵌套,其中第一个for循环是控制比较的趟数(每一
趟选出一个最大值),第二个for是比较的次数(比较相邻两个是中较大的值)。
但这个冒泡排序是有缺憾的,是可以优化的。这里我们说一个简单的优化,如果原来
的数组就是有序的,那这个排序还是会选择每一个比较,时间复杂度会很大,于是我
们可以这么优化:
在第二个for设计一个int类型标志flg定义为0,如果发生交换,那么flg++,如果flg结
果为0,说明没有发生交换,那么数组本身就是有序的。函数如下:
2.选择排序
选择排序就是从第一趟开始,用第一个元素和剩下中的每一个元素比较,如果比第一
个小,就和第一个元素交换值,最后使得第一个元素中的值最小,第二趟选择出第二
小的放到第二元素,依次,使得数组有序。下面我们举例说明:
如同冒泡排序一般,第一个for循环控制趟数,第二个for循环控制每一趟中比较的次数。
3.插入排序
插入排序类似于打扑克牌,从第二张牌开始插入,小的插到大的前面,然后使其有
序。再拿第三张牌来,找到合适的位置继续插入,使这三张有序。在第四张直至全部
插入有序。举例说明:
第一个for控制插入的次数,第二个for循环是每一次插入后,找到插入值合适位置,使
现有的元素有序。
(新手上路,如有错误,请多多指教。)
最后
以上就是危机向日葵为你收集整理的java中三种常见的排序方式的全部内容,希望文章能够帮你解决java中三种常见的排序方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复