ShellSort】的更多相关文章

留待期末考后更新... void shellsort(int v[], int n) { int gap, i, j, temp; ; gap > ; gap /= ) for(i = gap; i < n; i ++) && v[j]>v[j+gap]; j-=gap){ temp = v[j]; v[j] = v[j+gap]; v[j+gap] = temp; } } 前面×趟都是在做预处理,最后一遍是标准的冒泡排序.…
1. 希尔排序的原理: 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shell于1959年提出而得名. 在上面这幅图中: 初始时,有一个大小为 10 的无序序列. 在第一趟排序中,我们不妨设 gap1 = N / 2 = 5,即相隔距离为 5 的元素组成一组,可以分为 5 组. 接下来,按照直接插入排序的方法对每个组进行排序. 在第二趟排序中,我们把上次的 gap 缩小一半,即 gap2 =…
/* Shell Sorting. * Implemention history:. * 2013-09-15, Mars Fu, first version. */ /* [Shell Sorting Algorithm]. * Published by Donald L. Shell [CACM 2, 7(July 1959), 30-32]. */ #include "stdafx.h" #include "shellsort.h" #include <…
#include <bits/stdc++.h> using namespace std; #define MAXSIZE 200000 typedef int KeyType; typedef struct { KeyType key; }RedType; typedef struct { RedType r[MAXSIZE + ]; int length; }SqList; int Random(int start, int end){ int dis = end - start; ret…
ShellSort He made each turtle stand on another one's back And he piled them all up in a nine-turtle stack. And then Yertle climbed up. He sat down on the pile. What a wonderful view! He could see 'most a mile! The Problem King Yertle wishes to rearra…
首先,Shell是发明这个算法的人名,不是这个算法的思想或者特点. 希尔排序,也称为增量递减排序.基本思路,是把原来的序列,等效视为一个矩阵的形式.矩阵的列数,也称为宽度或者增量,记为w. 假设数组A[n]以及矩阵B[][],对于两者的对应关系,可以记为A[k]=B[k/w][k%w].也就是说,A中的元素会按照先行后列的顺序排列,即先左后右.先上后下的顺序放入矩阵B中. 对于增量或者说矩阵的宽度w,会有许多策略进行选择.假设w={1,2,4,8,16,32...}.从w的集合中选择小于数组元素…
#include<stdio.h> #include <time.h> #include<stdlib.h> int main(){ ]; //设立随机数 srand(time()); ;i<;i++){ a[i]=rand()%(); //随机数范围0到29之间 } //数组a的大小 ; //打印数组信息 ;i<size;i++){ printf("%d ",a[i]); } void ShellSort(int a[],int siz…
直接插入排序 要理解shell排序,首先要把直接插入排序的基础打扎实. 学习资料:白话经典算法系列之二 直接插入排序的三种实现.直接插入排序 根据我的思路,直接插入排序设置3重循环. 循环1:对 i=[无序序列]∈[ 1 , length ) 进行遍历. 循环2:对 j=[有序序列]∈[ 0 , i ) 进行遍历. 比较:nums [ i ] < nums [ j ] (发现有序序列中有元素不符合降序原则.即无序序列中有元素比有序序列还要小) 循环3:将 index= i 的元素插入到 j 的位…
Java ShellSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational </p> * <p> All rights reserved.</p> * <p> Created on 2018年4月10日 </p> * <p> Created by Jason</p> * </body> *…
1.介绍 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序. 2.基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序:随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止 3.示意图 4.代码 using System; namespace DataStructure { public class ShellSo…