随笔分类 -  数据算法

摘要:一、归并排序 1. 思想 如果有两个集合, listA={2,4,6,8}, listB={1,3,5,7}. 现在要将这两个数组合并成listC, 且必须保证listC中的数是有序的, 该咋弄呢? 第一步. 使listA, listB都变成有序的集合. 然后再合并的时候, 才会变得更好处理. 第二 阅读全文
posted @ 2017-04-06 13:29 Sniper_ZL 阅读(1569) 评论(1) 推荐(0)
摘要:一、直接插入排序 1. 思想 直接排序法, 可以分为两个部分, 一部分是有序的, 一部分是无序的. 从这个图上, 应该是能看清楚直接插入排序的思想了. 将无序部分的第一个与有序部分进行比较. 从有序部分的后面向前面比较, 然后不断地挪动有序部分的数据的位置 2. 复杂度 直接插入排序的最好情况下, 阅读全文
posted @ 2017-04-05 16:35 Sniper_ZL 阅读(554) 评论(0) 推荐(0)
摘要:上一篇中, 介绍了交换排序中的冒泡排序和快速排序, 那么这一篇就来介绍一下 选择排序和堆排序, 以及他们与快速排序的比较. 一、直接选择排序 1. 思想 在描述直接选择排序思想之前, 先来一个假设吧.(先不管这个假设是什么思想的排序啊) 假设我有两个集合, 一个是待排序集合, 一个是空集合. 现在通 阅读全文
posted @ 2017-04-05 14:45 Sniper_ZL 阅读(601) 评论(0) 推荐(0)
摘要:在开发的过程中, 经常会遇到集合排序, 那么一般情况下, 我们都是使用list.OrderBy()的方式来排序, 也无需关注到里面算法的实现是个什么样子. 正好这几天准备回顾一下数据结构与算法. 首先来了解一下, 排序大致可以分为哪几种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选 阅读全文
posted @ 2017-04-01 15:56 Sniper_ZL 阅读(7365) 评论(1) 推荐(0)