排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:(1)、选择排序:直接选择排序、堆排序。(2)、交换排序:冒泡排序、快速排序..
分类:
编程语言 时间:
2015-07-11 18:52:21
阅读次数:
238
package MyTest;import java.util.Scanner;public class BubbleSort { public void Init(int array[]) { Scanner num = new Scanner(System.in); System.out.p.....
分类:
编程语言 时间:
2015-07-07 18:45:13
阅读次数:
104
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以..
分类:
编程语言 时间:
2015-07-04 09:50:03
阅读次数:
147
一、希尔排序(Shell Sort)
希尔排序(Shell Sort)是一种插入排序算法,因D.L.Shell于1959年提出而得名。Shell排序又称作缩小增量排序。
二、希尔排序的基本思想
希尔排序的中心思想就是:将数据进行分组,然后对每一组数据进行排序,在每一组数据都有序之后
,就可以对所有的分组利用插入排序进行最后一次排序。这样可以显著减少交换的次数,以达到加快排序速度的...
分类:
编程语言 时间:
2015-06-19 01:31:56
阅读次数:
232
所谓插入排序法,就是检查第i个数字,如果在它的左边的数字比它大,进行交换,这个动作一直继续下去,直到这个数字的左边数字比它还要小,就可以停止了。插入排序法主要的回圈有两个变数:i和j,每一次执行这个回圈,就会将第i个数字放到左边恰当的位置去。
二、算法描述
1、从第一个元素开始,该元素可以认为已经被排序。
2、取出下一个元素,在已经排序的元素序列中从后向前扫描。
3、如果该元素(已排序)大于新元素,则将该元素移到下一位置。
4、重复步骤3,直到找到已排序的元素小于或者大于新元素的位置。
5、将新元素插入到...
分类:
编程语言 时间:
2015-06-18 15:25:04
阅读次数:
152
一、算法原理
对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量k记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一...
分类:
编程语言 时间:
2015-06-18 13:36:42
阅读次数:
162
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
一、算法原理
冒泡排序算法的运作如下:
1、比较相邻的元素。如果第一个比第...
分类:
编程语言 时间:
2015-06-18 07:08:22
阅读次数:
146
冒泡排序1算法原理1.冒泡排序算法的运作如下:(从后往前)2.比较相邻的元素。如果第一个比第二个大,就交换他们两个。3.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。4.针对所有的元素重复以上的步骤,除了最后一个。..
分类:
编程语言 时间:
2015-06-05 17:59:10
阅读次数:
132
需要做一个用户自定义排序的功能,本来并不觉得麻烦,但是做着做着发现,里面的问题很值得好好思考一下。
用户自定义排序的数据库设计很简单,无非是对需要排序的条加一个排序字段,但麻烦之处主要在于这个字段的更新过程。
如果用简单的1、2、3、4作为排序字段,那么把4移到1前面的情况下,原先的1~3都需要+1来为新的“1”腾出位置,这样会带来数倍于预期的计算量。
于是我希望找到一种方法来使得改...
分类:
编程语言 时间:
2015-05-29 12:01:11
阅读次数:
362