算法排序
三天打鱼,两天晒网
这个作者很懒,什么都没留下…
展开
-
二、选择排序
1、算法原理 选择排序的方法可以理解为通过挑选的方式来进行排序,从第一次开始,每一次从数组中拿出最小的数,放在指定位置。第i次就放在第i个位置,这样保证了数组0~i都是按顺序排好的,只需要继续执行将i+1~n排序即可。 选择排序的平均时间复杂度为:O(n^2)。 选择排序的空间复杂度为:O(1)。 由于某些情况下,对于有重复数字的数组序列,前一个数字挪到另一个的后面,如序列{2,3,3,1原创 2016-03-13 13:58:33 · 330 阅读 · 0 评论 -
三、插入排序
1、算法原理 插入排序是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。此算法适用于少量数据的排序,时间复杂度为O(n^2),空间复杂度为O(1)。插入排序是稳定的排序算法。 2、代码实现 (1)JAVA实现 注:本程序设计生成10个随机数,再对这10个随机数进行从小到大的插入排序 /* *原创 2016-03-18 19:07:24 · 296 阅读 · 0 评论 -
一、冒泡排序
1、算法原理 对一组无序数组,从第一个数开始,将该数依次对它后面的数作比较,如果它比后面的数大,则两者交换。n个数,总共需要n-1趟比较,第i个数比较的次数为n-i-1次。算法平均时间复杂度为O(n^2),最差时间为O(n^2),空间平均复杂度为O(1)。冒泡排序是稳定的排序算法。 2、代码实现 (1)JAVA实现 /* * 排序算法:冒泡排序原创 2016-03-13 12:04:26 · 324 阅读 · 0 评论 -
四、快速排序
1、算法原理 快速排序首先需要选取一个数(通常选择数组的第一个数)作为关键数据,然后将所有比它小的数都放在它的前面,所有比它大的数放在它后面。此算法最优的时间复杂度是O(nlogn),最差时间复杂度是O(n^2),平均时间复杂度为O(nlogn);此算法使用的空间是O(1)的,但是因为递归调用,所以最优的空间复杂度是O(logn)(每次都平分数组),最差的空间复杂度为O(n)。快速原创 2017-07-13 17:53:09 · 243 阅读 · 0 评论 -
三、插入排序
1、算法原理 插入排序是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。此算法适用于少量数据的排序,时间复杂度为O(n^2),空间复杂度为O(1)。插入排序是稳定的排序算法。 2、代码实现 (1)JAVA实现 注:本程序设计生成10个随机数,再对这10个随机数进行从小到大的插入排序 /* * 排序算法:插入排序 * 作者:xiaoxiao * 日期:2...原创 2018-12-03 20:50:53 · 155 阅读 · 0 评论