
日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。
下面一一列举
一、冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
|
|
结果 [1,2,3,4,5]
====================================================
选择排序
简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与r[2]交换;以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。
代码如下
|
|
结果:[1, 1, 2, 3, 5]
=======================================================
插入排序
通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。代码如下:
|
|
结果:[0, 1, 1, 2, 2, 4, 7, 11, 12, 123, 343]
==============================================================
快速排序
快速排序原理是分治思想,是冒泡排序的改进型。首先选择一个基准数,然后先从数组后端开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫描,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。一次排序就完成了。以后采用递归的方式分别对前半部分和后半部分排序,当前半部分和后半部分均有序时该数组就自然有序了。
代码实现
|
|
结果: [0, 1, 1, 2, 2, 4, 7, 11, 12, 123, 343]
===========================================================