最爱Java
书山有路勤为径,学海无涯苦作舟
目前在上海一家开发公司担任项目经理,兼任QA经理。联系方式:
zhili.zheng@gmail.com
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
《AspectJ Cookbook》读书笔记(24)
(rss)
数据结构与算法(2)
(rss)
随笔档案
2008年8月 (18)
2008年7月 (2)
2008年6月 (4)
搜索
最新评论
1. re: 《AspectJ Cookbook中文版》的附带示例下载
please,thanks!
--chenyuanming
2. re: 《AspectJ Cookbook》读书笔记十三: 定义通知
AspectJ 确实很灵活,我很早也看过了这本书,只是实际中写 aj 文件的机会还没有,学到相关的知识可运用于 Spring 2.0 的 AspectJ 方式 AOP 相关配置。
--隔叶黄莺
3. re: 《AspectJ Cookbook》读书笔记五: 捕获异常处理上的连接点
nnn
--大梅沙云顶天海会所
4. re: 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点[未登录]
学习了
--呵呵
5. re: 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点
怎么没三?
--lvq810
阅读排行榜
1. 插入排序思路与泛型版本的实现(1477)
2. 归并排序思路与泛型版本的实现(1150)
3. 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点(991)
4. 《AspectJ Cookbook》读书笔记十三: 定义通知 (939)
5. 《AspectJ Cookbook》读书笔记五: 捕获异常处理上的连接点(835)
评论排行榜
1. 插入排序思路与泛型版本的实现(4)
2. 归并排序思路与泛型版本的实现(3)
3. 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点(2)
4. 《AspectJ Cookbook》读书笔记五: 捕获异常处理上的连接点(1)
5. 《AspectJ Cookbook》读书笔记十三: 定义通知 (1)
Powered by:
博客园
模板提供:
沪江博客
BlogJava
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
插入排序思路与泛型版本的实现
一.插入排序算法的思路
假定这个数组的序是排好的,然后从头往后,如果有数比当前外层元素的值大,则将这个数的位置往后挪,直到当前外层元素的值大于或者等于它前面的位置为止。
二.插入排序算法实例
用五个名字(Monroe,Chin,Flores,Stein和Dare)的列表的插入排序算法为例:
Monroe
从Monroe开始
处理名字Chin
Chine
Monroe
将Chin插入到位置0;Monroe移动至位置1
处理名字Flores
Chine
Flores
Monroe
将Flores插入到位置1;Monroe移动至位置2
处理名字Stein
Chine
Flores
Monroe
Stein
Stein位置正确
处理名字Dare
Chine
Dare
Flores
Monroe
Stein
将Dare插入在位置1;列表尾部向右移动
三.插入排序算法的实现
public
class
InsertSort
{
//
sort an array of elements using insertion sort
public
static
<
T
extends
Comparable
<?
super
T
>>
void
sort(T[] arr)
{
int
i, j, n
=
arr.length;
T target;
/** */
/**
* place element at index i into the sublist
* from index 0 to i-1 where 1<= i,
* so it is in the correct positon
*/
for
(i
=
1
; i
<
n; i
++
)
{
//
index j scans down list from index i looking for
//
correct position to locate target; assigns it to
//
arr at index j
j
=
i;
target
=
arr[i];
//
locate insertion point by scanning downward as long
//
as target < arr[j] and we have not encountered the
//
beginning of the array
while
(j
>
0
&&
target.compareTo(arr[j
-
1
])
<
0
)
{
//
shift elements up list to make room for insertion
arr[j]
=
arr[j
-
1
];
j
--
;
}
//
the location is found;insert target
arr[j]
=
target;
}
}
}
四.插入排序算法的效率
假定n是数组的长度,那么插入排序需要n-1遍。对于通用的遍i来说,插入操作从arr[0]到arr[i-1]的子列表中,并且需要平均i/2次比较。比较的平均总数为:
T(n) = 1/2 + 2/2 + 3/2 + ...... + (n-2)/2 + (n-1)/2 = n(n-1)/4
根据T(n)的主项,插入排序算法的平均运行时间为O(n
2
)。最好情况为O(n),最坏情况为O(n
2
)。
发表于 2008-06-11 23:56
Brian
阅读(1477)
评论(4)
编辑
收藏
所属分类:
数据结构与算法
评论
#
re: 插入排序思路与泛型版本的实现
回复
更多评论
很好,我也在这个基于泛型的算法,但是好多类都不是很清楚。所以刚刚放弃,看见你写的大受启发。呵呵,谢谢了。
#
re: 插入排序思路与泛型版本的实现
回复
更多评论
http://www.hotels-shenzhen.cn/jiudian-xinwen.asp?id=135
#
re: 插入排序思路与泛型版本的实现
回复
更多评论
gjhtg
#
re: 插入排序思路与泛型版本的实现
回复
更多评论
传智播客 & ajax全套独家发布
1.ajax 入门
2.ajax 原理
3.ajax 简单实例
4.ajax 无限级联动菜单
5.ajax 简易聊天室
6.ajax 开源框架简介
7.DWR 框架源码分析一
8.DWR 框架源码分析二
9.DWR 框架源码分析三
10.DWR 框架源码分析四
11.DWR框架源码分析五
12.SSH + DWR完成商城驱动
13. Extjs 简介
14 Extjs 简单实例
15.SSH + Extjs 开发系列之OA一
16. SSH + Extjs 开发系列之OA二
17. SSH + Extjs 开发系列之OA三
18. SSH + Extjs 开发系列之OA四
19 .SSH + Extjs 开发系列之OA五
20. SSH + Extjs 开发系列之OA六
21. SSH + Extjs 开发系列之OA七
22. SSH + Extjs 开发系列之OA八
23.SSH + Extjs 开发系列之OA九
24.SSH + Extjs 开发系列之OA十
25. ajax 前景之我见
下载地址:
http://www.ibeifeng.com/read.php?tid=2338&u=5043
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
归并排序思路与泛型版本的实现
插入排序思路与泛型版本的实现
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理