https://www.jianshu.com/p/e6ad4423efcd 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归 ...
分类:
编程语言 时间:
2018-05-02 23:55:33
阅读次数:
214
常见排序算法有 1. 选择排序 2. 插入排序 3. 冒泡排序 4. 快速排序 5. 归并排序 这里写了5种排序的java demo,还有很多排序,希尔排序,计数排序,堆排序,基数排序等 Sort.java ...
分类:
编程语言 时间:
2018-05-01 12:26:00
阅读次数:
179
算法定义: 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。 但插入排序一般来说 ...
分类:
编程语言 时间:
2018-04-29 19:55:38
阅读次数:
216
package com.fh.sort; /** * @author * * @create 2018-03-06 下午10:22 **/ public class Sort { public static void main(String[] args){ Sort sort=new Sort()... ...
分类:
编程语言 时间:
2018-04-28 23:49:06
阅读次数:
290
一、 何为线性空间 1. 线性空间 定义:设V是一个非空集合,F为数域。如果对于任意两个元素α、β∈V,总有唯一的一个元素γ∈V与之对应,称为α与β的和,记作 γ=α+β 如果对于任意一个数λ∈F与任意一元素α∈V,总有一个唯一的一个元素δ∈V与之对应,称为λ与α的数量乘积,记作 δ=λα 如果上述 ...
分类:
其他好文 时间:
2018-04-26 23:33:45
阅读次数:
200
void ShellSort(int a[],int left,int right); //对a[left]到a[right]从小到大排序 void ShellSort(int a[],int left,int right) { int len = right - left +1; int gap,... ...
分类:
编程语言 时间:
2018-04-17 22:25:23
阅读次数:
218
最后发现7种排序的效率从低到高依次为 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快速排序 将数据量增加到1000w,也没有看到堆排序的优势,还是快速排序效率最高,留坑待填//todo ...
分类:
编程语言 时间:
2018-04-13 20:28:27
阅读次数:
143
#include <stdio.h>#include<stdlib.h>void ShellSort(int a[],int n){ int i,j,temp,in,key; in = n; while(in>1) {&nbs
分类:
编程语言 时间:
2018-04-13 12:04:44
阅读次数:
141
希尔排序在数组中采用跳跃式分组的策略,通过某个增量将数组元素划分为若干组,然后分组进行插入排序,随后逐步缩小增量,继续按组进行插入排序操作,直至增量为1。希尔排序通过这种策略使得整个数组在初始阶段达到从宏观上看基本有序,小的基本在前,大的基本在后。然后缩小增量,到增量为1时,其实多数情况下只需微调即 ...
分类:
编程语言 时间:
2018-04-10 16:06:12
阅读次数:
242
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:直接选择排序、堆排序。 (3)、 ...
分类:
编程语言 时间:
2018-04-10 13:39:28
阅读次数:
179