分类 :(一)插入类排序:直接插入排序,折半插入排序,希尔排序(二)交换类排序:冒泡排序,快速排序(三)选择类排序:简单选择排序,树形选择排序,堆排序(四)归并排序:归并排序(五)分配类排序二、插入类排序:(一)思想:在一个已经排好序的序列中,将未被排进的元素按照原先的规定插入到指定位置。(二)分类...
分类:
编程语言 时间:
2015-11-07 12:15:40
阅读次数:
395
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-18 23:10:09
阅读次数:
307
排序算法大致有直接插入排序、折半插入排序、Shell排序、归并排序、直接选择排序、堆排序、冒泡排序、快速排序、桶式排序、基数排序等这些种,各个算法都有其优异性,大家不妨自己看看。下面贴上每个算法的简单讲解和实现: 1.直接选择排序(DirectSelectSort):其关键就是对n个数据要进行n-1...
分类:
编程语言 时间:
2015-10-17 21:55:39
阅读次数:
264
一、折半插入排序(二分插入排序)将直接插入排序中寻找A[i]的插入位置的方法改为採用折半比較,就可以得到折半插入排序算法。在处理A[i]时,A[0]……A[i-1]已经按关键码值排好序。所谓折半比較,就是在插入A[i]时,取A[i-1/2]的关键码值与A[i]的关键码值进行比較,假设A[i]的关键码...
分类:
编程语言 时间:
2015-10-06 09:09:27
阅读次数:
217
importjava.util.Random;/*** 排序测试类** 排序算法的分类如下: *1.插入排序(直接插入排序、折半插入排序、希尔排序); *2.交换排序(冒泡泡排序、快速排序);* 3.选择排序(直接选择排序、堆排序); *4.归并排序; *5.基数排序。** 关于排序方法的选择: *...
分类:
编程语言 时间:
2015-09-16 19:36:15
阅读次数:
413
和直接插入排序相似,但是在查找有序子表的时候采用折半查找void InsertSort(ElemType A[], int n){ int i, j, low, high, mid; for(i=2; iA[0].key)//查找左半边子表 high=mid-1; else//查找右半边子表 low...
分类:
编程语言 时间:
2015-08-21 19:05:33
阅读次数:
122
由于插入排序的基本思想是在一个有序序列中插入一个新的记录,则可以利用"折半查找"查询插入位置,由此得到的插入排序算法为"折半插入排序"。算法如下: void BInsertSort (SqList &L)
{
// 对顺序表L作折半插入排序
for ( i=2; i<length; ++i )
{
r[0] = r[i];...
分类:
编程语言 时间:
2015-08-17 14:07:35
阅读次数:
117
排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序、分配排序和计数排序。插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序...
分类:
编程语言 时间:
2015-08-03 22:53:18
阅读次数:
251
排序思路:通过折半查找的方式找到合适的插入位置再插入。算法实现:public class BiInsertSort { public static void biInsertSort(int arr[]){ for(int i = 1; i = right+1; j --){ ...
分类:
编程语言 时间:
2015-07-27 18:09:00
阅读次数:
118
package insert_sort;
import java.util.Random;
/*各类插入排序
* ------数据存储范围1~s.length-1-------
*主要包括
*直接插入排序
*折半插入排序
*希尔排序
*以下为代码实现,其中折半查找函数是为了供折半插入排序使用
*/
public class Sort {
/*
* 折半查...
分类:
编程语言 时间:
2015-07-27 01:57:28
阅读次数:
224