博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入类排序
阅读量:4979 次
发布时间:2019-06-12

本文共 1873 字,大约阅读时间需要 6 分钟。

下面的源代码出来源于我在“西安朱洪计算机培训”学习时的老师之手,马上要找工作了,赶紧复习下,顺便分享下

#include 
#include
#include
/************************************************************************//* 插入排序算法思想:考虑打扑克牌时的抓牌过程,从小到大排序, *//* 前面总是已经排序好的,新牌插入到合适的位置。 *//************************************************************************/void insertSort (int *d, int start, int step, int len){ int t, i, j; for (i = start + step; i < len; i += step) { t = d[i]; /* 抽出当前下标元素的值 */ /* 前面总是已排序好的,从已排序好的位置找插入位置,排序稳定 */ for (j = i - step; j >= start && t < d[j]; j -= step) { /* 把比当前值(t)大的元素都向其后移动一个位置,空出位置d[j] */ d[j + step] = d[j]; } /* d[j + step]是一个空位置,要插入的位置 */ d[j + step] = t; }}/************************************************************************//* 希尔排序算法思想:将记录分成若干子序列,子序列数目的分法和 *//* 步长(间隔)有关;子序列按直接插入排序执行排序。 *//************************************************************************/void shellSort (int *d, int len){ int start, step; /* step是步长(间隔),步长越小,子序列数目越少;*/ /* step每改变一次,整个记录就重排序一次 */ for (step = len >> 1; step; step >>= 1) { /* 定位每个子序列的起始下标 */ for (start = 0; start < step; ++start) { /* 子序列按直接插入排序执行排序 */ insertSort(d, start, step, len); } }}void Insert_Example (void){ int i; int arr[7] = {
10, 7, 11, 12, 9, 21, 6}; shellSort(arr, 7); //insertSort(arr, 0, 1, 7); for (i = 0; i < 7; i++) printf("%4d, ", arr[i]); }int main (){ Insert_Example(); return 0;}

直接插入排序:稳定排序;时间复杂度O(n^2)。

希尔排序:不稳定排序,如:{2,4,1,2} 一次排序后为{1,2,2,4};事件复杂度:O(n^1.5)。

posted on
2012-10-08 20:37 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/wangkaichao/archive/2012/10/08/2715759.html

你可能感兴趣的文章
github实践操作
查看>>
ES6的新特性(21)——Proxy
查看>>
将本地文件通过CRT传输到虚拟机上
查看>>
rocketmq事务消息入门介绍
查看>>
#define 宏定义
查看>>
邀请好友注册页面光标点到输入框后,输入框会先灰一下。只有ios存在
查看>>
免费参加Tech.Ed Australia 2010
查看>>
简单打开和保存txt文件
查看>>
关于淘宝技术了解
查看>>
linux 用户与用户组
查看>>
数据结构之排序查找算法
查看>>
运用PCA进行降维的好处
查看>>
matlab
查看>>
《构建之法》阅读笔记02
查看>>
如何利用python将.doc文件转换为.docx文件
查看>>
Ubuntu 14.04 定时任务
查看>>
切片对象
查看>>
[置顶] Android入门教程------导入现有Android工程
查看>>
《Entity Framework 6 Recipes》中文翻译系列 (40) ------ 第七章 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读)...
查看>>
Intro to Filtering with Network Monitor 3.0
查看>>