#include<stdio.h>#definemax100//数组大小voidshellsort(int*a,intn)
{
intdelta,i,j;for(delta=n/2;delta>0;delta/=2)
{
for(i=delta;i<n;i++)
{
inttemp=a[i];for(j=i-delta;j>=0;j-=delta)
{
if(temp<a[j])a[j+delta]=a[j];elsebreak;
}
a[j+delta]=temp..
分类:
编程语言 时间:
2015-08-09 10:55:19
阅读次数:
131
static void shell_sort(int[] unsorted, int len) { int group, i, j, temp; for (group = len / 2; group > 0; group /= 2) ...
分类:
编程语言 时间:
2015-08-07 01:47:41
阅读次数:
126
希尔排序
#include
#include
usingnamespace std;
void ShellSort(int
*data,
intleft,
intright)
{
int len =
right -
left + 1;
int d = len;
while (d > 1)
{
d = (d ...
分类:
编程语言 时间:
2015-08-06 00:41:05
阅读次数:
141
博主在学习过程中深感基础的重要,经典排序算法是数据结构与算法学习过程中重要的一环,这里对笔试面试最常涉及到的7种排序算法(包括插入排序、希尔排序、选择排序、冒泡排序、快速排序、堆排序、归并排序)进行了详解。每一种算法都有基本介绍、算法原理分析、算法代码。
插入排序
1)算法简介
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对...
分类:
编程语言 时间:
2015-08-04 19:17:48
阅读次数:
413
各种常见的排序
要开始找工作了,把以前学的各种小知识复习一遍,以下是各种常见的排序的简单实现(冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序),至于原理就不写出来了,代码比较简单,看一下就懂,再不行可以随意找本书或百度!
#include
using namespace std;
// 冒泡
void BubbleSort(int data[], int l...
分类:
编程语言 时间:
2015-08-04 17:15:35
阅读次数:
216
排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序、分配排序和计数排序。插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序...
分类:
编程语言 时间:
2015-08-03 22:53:18
阅读次数:
251
日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序等。冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素...
分类:
编程语言 时间:
2015-08-03 19:00:00
阅读次数:
153
这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算法原理分析、图解/flash演示/视频演示、算法代码、笔试面试重点分析、笔试面试题等板块。
一、插入排序
1)算法简介
插入排序(Insertion Sort)的算法...
分类:
编程语言 时间:
2015-08-02 23:27:29
阅读次数:
289
各位看官们,大家好,上一回中咱们说的是希尔排序的例子,这一回咱们说的例子是:选择排序。闲话休
提,言归正转。让我们一起talk C栗子吧!
选择排序的原理是:从容器中选择一个最大或者最小的元素,把该元素放到新的容器中,等到容器中的所
有元素都被选择完后,新容器中存放的元素就是有序的。
在实现选择排序时,我通过交换元素的位置,充分利用了容器的空间,而没有创建新的容器,这...
分类:
编程语言 时间:
2015-08-02 20:04:02
阅读次数:
136
希尔排序是基于插入排序的以下性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率。但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位,因此插入排序只能将元素一点一点地从数组的一端移动到另一端。希尔排序没有减少元素的比较次数,但减少了元素的移动次数...
分类:
编程语言 时间:
2015-08-02 15:10:36
阅读次数:
126