数据结构之shell排序
#SIZE 10
//直接插入排序
void insert_sort(){
int i,j;
int array[SIZE+1];
array[]={0,12,23,11,55,2,34,18,20,48,22};
for(i=2;i<=SIZE;i++){
array[0]=array[i];
j=i-1;
while(array[0]<array[j]){
array[j+1]=array[j];
j--;
}
array[j+1]=array[0];
}
}
//折半插入排序
void insert_binary_sort(){
int j,i,low,hight,m;
int array[SIZE+1];
for(i=2;i<=SIZE;i++){
array[0]=array[i];
hight=i-1;
low=1;
while(low<=hight)
{
m=(low+hight)/2;
if(array[0]<array[m])
hight=m-1;
else low=m+1;
}
for(j=i;j>hight+1;j--)
{
array[j]=array[j-1];
}
array[hight+1]=array[0];
}
}
//shell排序,在直接插入排序上进行优化而来
void shell_sort(){
int d,n,j,i;
int array[SIZE+1];
int d=n;
do{
d=d/2;
for(i=d+1;i<=SIZE;i++)
{
array[0]=array[i];
for(j=i-d;j>0&&array[j]>array[0];j-=d){
array[j+d]=array[j];
}
array[j+d]=array[0];
}
}while(d!=1);
}
数据结构之shell排序的更多相关文章
- 数据结构学习——shell排序的C语言实现
shell排序: 这个排序的命名是来自发明者的名字,和排序的方法没有字面上的联系.所以不要因为名字而感觉很难.在K&R的C程序设计语言中书中只用了几行代码很简洁的实现了这个排序算法.那就来看看 ...
- 数据结构与算法之--高级排序:shell排序和快速排序
高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序大约是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希 ...
- 数据结构学习(shell排序和归并排序)
# coding=utf-8 # shell排序 # 参数alist:被被排序的列表 def shellsort(alist): gap = len(alist) / 2 while gap > ...
- 数据结构-排序-shell排序
shell排序 首先,希尔排序适用于待排序列关键有序. 接下来一步步图解SHELL排序 我为了方便理解内部操作.我先把代码输出整理下. #include<iostream> #includ ...
- (2)Java数据结构--二叉树 -和排序算法实现
=== 注释:此人博客对很多个数据结构类都有讲解-并加以实例 Java API —— ArrayList类 & Vector类 & LinkList类Java API —— BigDe ...
- 数据结构(C语言)—排序
数据结构(C语言)—排序 排序 排序是按关键字的非递增或递减顺序对一组记录中心进行排序的操作.(将一组杂乱无章的数据按一定规律顺次排列起来.) 未定列表与不稳定列表 假设 Ki = Kj ( 1 ≤ ...
- 基本排序算法——shell排序java实现
shell排序是对插入排序的一种改进. package basic.sort; import java.util.Arrays; import java.util.Random; public cla ...
- 插入排序与shell排序(希尔排序)
1 .插入排序的过程如同我们平时打扑克牌取牌插入的过程,不断将取出的扑克牌插入已经排好的地方. 插入排序过程初始有序区间大小为1,取出无序区间的首元素,查找有序区间的合适位置,进行插入.不断重复上述过 ...
- Java常见排序算法之Shell排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
随机推荐
- Visual Studio跨平台开发(3):Xamarin iOS多页面应用开发
前言 在前一篇教学中, 我们学会如何使用Visual Studio 搭配Xcode进行iOS基本控制项的操作. 但都是属于单一画面的应用程式. 这次我们要来练习如何通过Navigation Contr ...
- AC日记——Valued Keys codeforces 801B
801B - Valued Keys 思路: 水题... 来,上代码: #include <cstdio> #include <cstring> #include <io ...
- (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...
- FZU-2267 The Bigger the Better(字符串,模拟)
Problem 2267 The Bigger the Better Accept: 132 Submit: 935Time Limit: 1500 mSec Memory Limit ...
- #423 Div2 C
#423 Div2 C 题意 给出 n 个字符串以及他们在 S 串中出现的位置,求字典序最小的 S 串.保证给出的字符串不会冲突. 分析 模拟就好.用并查集思想优化,数组 nxt[i] 表示从 i 开 ...
- 【bzoj3524】【Poi2014】【Couriers】可持久化线段树(主席树)水题
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=62485671 向大(hei)佬(e)势力学(di ...
- Java判断中文字符
package com.jsoft.test; import java.util.regex.Pattern; /** * 判断中文字符 * * @author jim * @date 2017-12 ...
- Delphi CRC算法crcexecute
function crcexecute(pcstring : string) : string ; forward; var gnkey : integer; gnsalt : integer; ...
- Flex 布局学习笔记
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Proxy server got bad address from remote server
在ArcMap中,在GIS Servrvers中,打开已经设置好的服务器时,出现下面的弹窗问题. Proxy server got bad address from remote server(ver ...