前言:排序是现在程序员的必备技能,是很多公司的面试必考点,不管是做移动端,后端开发,排序是绕不过的,众生平等。学习其排序的思想往往能解决不同类型的问题,所以静下心来,研究一下不同的排序算法,算是对自己有一个提升。
排序概述:排序就是将一组对象按照某种逻辑顺序重新排列的过程。
十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序,希尔排序,计数排序,基数排序,桶排序。
本文对简单选择排序走一个解析:
简单选择排序步骤:
1.首先,找到数组中最大或者最小的那个元素
2.其次,将它和数组的第一个元素交换位置(如果第一个元素就是最大或者最小的元素那么它就和自己交换)
3.再次,在剩下的元素中找到最大或者最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序
4.这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最大或者最小者
代码举例:
对一个数组进行排序:(86,11,77,23,32,45,58,63,93,4,37,22)
int[] array = {86,11,77,23,32,45,58,63,93,4,37,22};
排序代码展示:
调用sort方法后打印如下:
对该案例进行分析:
(1).i==0 时,进行第一次内部循环 获取到的最小值是 4 在array第0个位置上赋值为4 4位置上变为86
(2).i ==1 时,进行第二次内部循环 获取到的最小值是 11 在array第1个位置上赋值为11
(2).i ==2 时,进行第三次内部循环 获取到的最小值是 22 在array第2个位置上赋值为22 22的位置变为77
......直至外层循环完成,排序即告完成。
打印每个步骤的数组:
至此选择排序就到这里讲解结束了,细看的话其实一点也不复杂。