直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。 1. 初始时,数组全为无序区为a[0..n-1]。令i=0 2. ...
分类:
编程语言 时间:
2018-12-25 13:14:12
阅读次数:
242
首先来看看原题 微软2010年笔试题 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要 ...
分类:
编程语言 时间:
2018-12-25 13:11:55
阅读次数:
228
为了方便大家查找和学习,现将本人博客中所有博客文章列出目录。 一. 白话经典算法 目前有17篇,分为七大排序和经典面试题讲解两大类 1. 《白话经典算法系列之一 冒泡排序的三种实现》 2. 《白话经典算法系列之二 直接插入排序的三种实现》 3. 《白话经典算法系列之三 希尔排序的实现》 4. 《白话 ...
1 SQL分页查询,每页10个数据,取第三页 A) 如果有id列 select top(10) * from Spider_Hotel where Spider_Hotel.HotelId not in ( select top (10*2) Spider_Hotel.HotelId from Sp ...
分类:
数据库 时间:
2018-12-15 14:27:04
阅读次数:
207
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。 1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 2. 将a[i]并入当前的有序 ...
分类:
编程语言 时间:
2018-12-09 14:01:39
阅读次数:
226
冒泡排序是非常容易理解和实现,,以从小到大排序举例: 设数组长度为N。 1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。 2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。 3.N=N-1,如果N不为0就重复前面二步,否则排 ...
分类:
编程语言 时间:
2018-12-08 18:01:47
阅读次数:
124
Java中的经典算法之冒泡排序(Bubble Sort) 学不死的程序员的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3 ...
分类:
编程语言 时间:
2018-12-04 21:08:08
阅读次数:
185
递归是经典算法常用的方法,了解并掌握递归可以大大提升你的程序编写的能力。 ...
分类:
其他好文 时间:
2018-12-04 14:40:15
阅读次数:
208
冒泡排序、 实现原理: 比较两个相邻位数的元素,将较大的元素交换到右端或左端,最大的元素就在最右端或是最左端; 从小-->大 从大-->小 ...
分类:
编程语言 时间:
2018-12-03 22:11:05
阅读次数:
251
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一 ...
分类:
编程语言 时间:
2018-12-03 11:58:52
阅读次数:
222