Shell Sort(草稿)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ShellSort
{
class DataType
{
public double Data; public static bool operator <(DataType a, DataType b)
{
if (a.Data < b.Data)
return true; return false;
} public static bool operator >(DataType a, DataType b)
{
if (a.Data > b.Data)
return true; return false;
} public DataType()
{
Data = ;
}
}
class Program
{
public static int count = ;
static void Main(string[] args)
{
DataType[] array = CreateArray();
SetArrayValue(array);
ShellSort(array, , array.Length - ); Console.ReadKey();
} public static void ShellSort(DataType[] array, int left, int right)
{
DataType temp;
int i, j, gap = right - left + ;
PrintArray(array);
do
{
gap = gap / + ;
for (i = left + gap; i <= right; i++)
{
if (array[i] < array[i - gap])
{
temp = array[i];
j = i - gap;
do
{
array[j + gap] = array[j];
j = j - gap;
} while (j > left && temp < array[j]);
array[j + gap] = temp;
}
}
count++;
Console.WriteLine("间隔为: {0}", gap);
PrintArray(array);
} while (gap > );
} public static void PrintArray(DataType[] array)
{
Console.Write("第{0}次排序结果: ", count);
foreach (var data in array)
{
if (data != array[array.Length - ])
{
Console.Write(data.Data + " ");
}
else
{
Console.WriteLine(data.Data);
}
}
} public static void SetArrayValue(DataType[] array)
{
Random random = new Random();
foreach (var data in array)
{
data.Data = random.Next(, );
}
} public static DataType[] CreateArray(int size)
{
if (size < )
return null;
DataType[] temp = new DataType[size];
for (int i = ; i < size; i++)
{
temp[i] = new DataType();
}
return temp;
}
}
}
Code Here
Shell Sort(草稿)的更多相关文章
- 希尔排序( Shell Sort)
原文地址:http://www.stoimen.com/blog/,在此感谢作者! Insertion sort is a great algorithm, because it’s very int ...
- [算法] 希尔排序 Shell Sort
希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它的基本思想是: ...
- - Shell - sort处理大文件(页 1) - ChinaUnix.net
- Shell - sort处理大文件(页 1) - ChinaUnix.net sort处理大文件
- 排序算法--希尔排序(Shell Sort)_C#程序实现
排序算法--希尔排序(Shell Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困难 ...
- 希尔排序Shell sort
希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第一块希尔排序介绍 准备待排数组[6 2 4 1 ...
- 算法Sedgewick第四版-第1章基础-2.1Elementary Sortss-004希尔排序法(Shell Sort)
一.介绍 1.希尔排序的思路:希尔排序是插入排序的改进.当输入的数据,顺序是很乱时,插入排序会产生大量的交换元素的操作,比如array[n]的最小的元素在最后,则要经过n-1次交换才能排到第一位,因为 ...
- 排序 —— 希尔排序(Shell sort)
希尔排序(Shell sort)的名称源于它的发明者 Donald Shell,该算法是冲破二次时间屏障(冒泡和插入排序,基于相邻元素的交换)的第一批算法.希尔排序改进了冒泡和插入排序的相邻元素才进行 ...
- [转帖]linux Shell sort按照指定列排序
linux Shell sort按照指定列排序 https://blog.csdn.net/weixin_38308151/article/details/80760133 kubectl get p ...
- 【算法】希尔排序(Shell Sort)(四)
希尔排序(Shell Sort) 1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版.它与插入排序的不同之处在于,它会优先比较距离较远的元素.希尔排序又叫缩小增量排序. ...
随机推荐
- Thinking In Java 读书笔记
面向对象语言,五个基本特性: 1)万物皆为对象. 2)程序是对象的集合,他们通过发送消息来告知彼此所要做的. 3)每个对象都有自己的由其他对象所构成的存储. 4)每个对象都拥有其类型.即:每个对象都是 ...
- Memcached 分布式缓存实现原理
摘要 在高并发环境下,大量的读.写请求涌向数据库,此时磁盘IO将成为瓶颈,从而导致过高的响应延迟,因此缓存应运而生.无论是单机缓存还是分布式缓存都有其适应场景和优缺点,当今存在的缓存产品也是数不胜数, ...
- The reference to entity “idNo” must end with the ';' delimiter 异常处理
解决方案很简单,就是把配置项值中用到"&"的地方改成"&".原因是sax解析的类库在读取文件的时候是根据转义后的格式进行读取的,遇到" ...
- 为什么你要拒绝我 ——苹果AppStore被拒理由大全
简而言之 截图中出现了Android 截图中出现了hack苹果的内容 评论中出现了"屌丝"等不雅词汇 App中包含谈论Android系统的内容 你修改了状态栏,不行 只有第三方登录 ...
- greenplum如何激活,同步,删除standby和恢复原始master
在Master失效时,同步程序会停止,Standby可以被在本机被激活,激活Standby时,同步日志被用来恢复Master最后一次事务成功提交时的状态.在激活Standby时还可以指定一个新的Sta ...
- ACE的接受器(Acceptor)和连接器(Connector):连接建立模式
ACE_Acceptor工厂的open()方法,或是它的缺省构造器(它实际上会调用open()方法),来开始被动侦听连接.当接受器工厂的open()方法被调用时,如果反应堆单体还没有被实例化,open ...
- Asp.net mvc5 系列笔记
程序版本 vs 2015 1.0.0-beta4 ,得到你的肯定是我最大的动力. Asp.net Vnext 调试源码 Asp.net Vnext 自定义日志 Asp.net Vnext 中间件实 ...
- 什么情况下用+运算符进行字符串连接比调用StringBuffer/StringBuilder对象的append性能好
如果在编写代码的过程中大量使用+进行字符串评价还是会对性能造成比较大的影响,但是使用的个数在1000以下还是可以接受的,大于10000的话,执行时间将可能超过1s,会对性能产生较大影响.如果有大量需要 ...
- java 面试每日一题2
题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 注:如果想单独输出中文的个数和中文符号的个数,只需把isChinese()中的if语句修改 知识补充: java不像C中拥有s ...
- Linux hrtimer分析(2)
http://blog.csdn.net/angle_birds/article/details/17375901 本文介绍Linux2.6.29中,配置高精度模式的hrtimer与未配置高精度模式时 ...