排序算法
焦虑的说说
喜欢编程,喜欢听音乐,跑步
展开
-
稳定排序:冒泡排序
实现思路:不停地使数组中的相邻的左右两个元素对比大小,大的元素往右移,因为是左右交换,所以如果他们相等,肯定不会交换。所以是稳定的。//java public class bubble_sort{ public static void main(String[]args){ int a[]={12,6,5,7,1}; int tmp=0; for(int i=0;i<a.leng原创 2017-04-19 20:20:55 · 3648 阅读 · 0 评论 -
稳定排序:归并排序
归并排序:对于给定的一组长度为n的记录,利用分治和递归的思想,将记录分为一个个长度为1的子序列,最后再用递归方法将排好序的子序列合并成为越来越大的有序序列。此方法称为2-路归并排序 归并排序一般会用在外部排序的算法中。 该算法是采用分治法的一个非常典型的应用。 【时间复杂度】:O(nlogn) 【最优情况】: O(nlogn) 【最坏情况】:O(nlogn) (归并原创 2017-04-20 16:02:20 · 597 阅读 · 0 评论 -
稳定排序:插入排序
插入排序: 每次从【无序表】中取出第一个元素。把它插入的到有序列表中的合适位置。 实现思路: 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数【从前向后】扫描,把第三个数按大小插入到合适的位置中。 为什么说插入排序是稳定排序呢? 因为插入排序,选第一个元素为有序序列,后面的元素和它作比较,比它大就在它后面,比它小就和它交换位置,和它相等,就放在原创 2017-04-19 14:58:46 · 1537 阅读 · 0 评论 -
数据结构:排序
一、排序按照待排序的记录数量不同,使得排序过程中涉及的存储器不同,排序方法分为两大类: 【内部排序】:待排序记录存放在计算机随机存储器中进行排序 【外部排序】:待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需要外存进行访问按照稳定性,排序方法分为 【稳定性排序】: 通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单化一下原创 2017-04-19 11:04:12 · 344 阅读 · 0 评论