希尔排序
来源:互联网 发布:php 通过域名获取ip 编辑:程序博客网 时间:2024/06/04 19:27
希尔排序的两种方法实现:
方案一:
public static void ShellSort(int[] myarry) { int temp; int n = myarry.Length; int gap = n / 2; while (gap != 0) { for (int i = gap; i <= myarry.Length - 1; i++) { temp = myarry[i]; int j; for (j = i; j >= gap; j = j - gap) { if (temp < myarry[j - gap]) { myarry[j] = myarry[j - gap]; } else break; } myarry[j] = temp; } gap /= 2; } } static void Main(string[] args) { int[] a = { 4, 5, 8, 9, 1, 0, 6, 7, 3, 2 }; Console.Write("希尔排序前:"); for (int i = 0; i <= a.Length - 1; i++) { Console.Write("{0}{1}", a[i], " "); } ShellSort(a); Console.Write("\n希尔排序后:"); for (int i = 0; i <= a.Length - 1; i++) { Console.Write("{0}{1}", a[i], " "); } Console.Read(); }方案二:
public class ShellSorter { public void Sort(int [] list) { int inc; for(inc=1;inc<=list.Length/9;inc=3*inc+1); for(;inc>0;inc/=3) { for(int i=inc+1;i<=list.Length;i+=inc) { int t=list[i-1]; int j=i; while((j>inc)&&(list[j-inc-1]>t)) { list[j-1]=list[j-inc-1]; j-=inc; } list[j-1]=t; } } } } public class MainClass { public static void Main() { int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47}; ShellSorter sh=new ShellSorter(); sh.Sort(iArrary); for(int m=0;m<=13;m++) Console.WriteLine("{0}",iArrary[m]); } }
阅读全文
0 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 二叉树的扩展——主要方法和基本算法等
- mergesort
- 希尔排序
- 程序员应该避免的5种代码注释
- Hibernate一级缓存(补)
- 希尔排序
- Vue.js 组件
- mongodb(一):在linux服务器上的安装和部分基础操作
- SpringBoot集成ActiveMQ
- 深入理解PHP:高级技巧、面向对象与核心技术(原书第3版) -- 设计模式之策略模式
- Python进阶—map函数
- python代码优化
- 分布式和集群的区别
- Android 使用volley上传图片、多张图片