基于visual Studio2013解决C语言竞赛题之1081shell排序
来源:互联网 发布:windows开启多线程 编辑:程序博客网 时间:2024/05/19 09:01
题目
解决代码及点评
/************************************************************************//* 81.SHELL排序程序。该方法的特征是:一个元素与它间隔为J 的元素进行比较或交换,然后逐步缩小这个间隔到1为止。J缩小的规律可以是 J<=J/2或J<=(J+1)/2,我们取 J<=J/2(取整)编程。具体地说方法如下:对于N个数据,首先让J<=INT(N/2),让X[1]与X[J+1]比较(假设数组名X),X[2]与X(J+2)比较,...,X[N-J]与X[N]比较,若次序颠倒,则互相交换。然后再重新比较一轮,直到没有交换为止。于是令J<=INT(J/2),再重复以上操作,直到J=1,而且在这一轮比较中没有交换,才排序完成。例如 N=9数据为: 5 7 6 4 9 1 3 2 8 交换次数J取4(INT(9/2)) 5 1 3 2 8 7 6 4 9 4再比较一轮 不变 0J取2(INT(4/2)) 3 1 5 2 6 4 8 7 9 3再比较一轮 不变 0J取1(INT(2/2)) 1 3 2 5 4 6 7 8 9 4再比较一轮 1 2 3 4 5 6 7 8 9 2再比较一轮 不变停止*//************************************************************************/#include <stdio.h>#include <stdlib.h>voidShellsort(int * arr,int n){int i,j,increment;int temp;for (increment=n/2;increment>0;increment/=2){for (i=increment;i<n;i++){temp=arr[i];for (j=i;j>=increment;j-=increment){if (temp<arr[j-increment]){arr[j]=arr[j-increment];}else{break;}}arr[j]=temp;}}}void main(){int arr[10]={1,4,2,6,3,8,9,6,3,12};for (int i=0;i<10;i++){printf("%5d",arr[i]);}printf("\n");Shellsort(arr,10);for (int i=0;i<10;i++){printf("%5d",arr[i]);}printf("\n");system("pause");}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn
0 0
- 基于visual Studio2013解决C语言竞赛题之1081shell排序
- 基于visual Studio2013解决C语言竞赛题之1055排序
- 基于visual Studio2013解决C语言竞赛题之前言
- 基于visual Studio2013解决C语言竞赛题之0401阶乘
- 基于visual Studio2013解决C语言竞赛题之0408素数
- 基于visual Studio2013解决C语言竞赛题之0516人来人往
- 基于visual Studio2013解决C语言竞赛题之0517矩阵
- 基于visual Studio2013解决C语言竞赛题之0519最大值
- 基于visual Studio2013解决C语言竞赛题之0605strcat
- 基于visual Studio2013解决C语言竞赛题之0607strcpy
- 基于visual Studio2013解决C语言竞赛题之0612递归
- 基于visual Studio2013解决C语言竞赛题之0803报数
- 基于visual Studio2013解决C语言竞赛题之0810链表去重
- 基于visual Studio2013解决C语言竞赛题之1004平均值
- 基于visual Studio2013解决C语言竞赛题之1006填空
- 基于visual Studio2013解决C语言竞赛题之1010计算
- 基于visual Studio2013解决C语言竞赛题之1011对称
- 基于visual Studio2013解决C语言竞赛题之1017次数
- 在深圳呆那么就感觉伤心了有木有?
- 黑马程序员——进制转换方法
- MongoDB 基本操作
- SVM
- DEVELOP ON WINDOWS AS IF IT WAS UNIX
- 基于visual Studio2013解决C语言竞赛题之1081shell排序
- Hadoop无法解决的问题
- PHP中代码编码解码的一些问题总结(base64+gzinflate|gzdeflate+str_rot13)
- ORA-4031错误深入解析
- cocos2d-x IOS适配 一种不改变你图片品质的适配原理(美女程序员的文章)
- php、js、java的正则替换文本方式制作模板内容输出
- 64位ubuntu 配置andorid环境建立工程没有R.java文件
- Linux红黑树(三)——插入节点
- Visual Studio 2012 - Visual C++ MFC 类