最爱Java
书山有路勤为径,学海无涯苦作舟
目前在上海一家开发公司担任项目经理,兼任QA经理。联系方式:
zhili.zheng@gmail.com
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
《AspectJ Cookbook》读书笔记(24)
(rss)
《Ruby on Rails》入门经典
(rss)
Jakarta Commons笔记(3)
(rss)
数据结构与算法(2)
(rss)
自编小工具(1)
(rss)
随笔档案
2009年1月 (3)
2008年12月 (1)
2008年8月 (18)
2008年7月 (2)
2008年6月 (4)
收藏夹
Java中的字符集编码入门(6)
(rss)
搜索
最新评论
1. re: 自编的"个人求职管理"小工具
搞得太复杂了吧?数据库,服务器,浏览器,框架。
这种工具应该是一个小型不超过1M的exe程序+自定义的文件格式作为存储
--Always BaNg.
2. re: 自编的"个人求职管理"小工具[未登录]
还不错。。。。。。。
--apple0668
3. re: 《AspectJ Cookbook中文版》的附带示例下载
please,thanks!
--chenyuanming
4. re: 《AspectJ Cookbook》读书笔记十三: 定义通知
AspectJ 确实很灵活,我很早也看过了这本书,只是实际中写 aj 文件的机会还没有,学到相关的知识可运用于 Spring 2.0 的 AspectJ 方式 AOP 相关配置。
--隔叶黄莺
5. re: 《AspectJ Cookbook》读书笔记五: 捕获异常处理上的连接点
nnn
--大梅沙云顶天海会所
阅读排行榜
1. 插入排序思路与泛型版本的实现(1954)
2. 归并排序思路与泛型版本的实现(1337)
3. 自编的"个人求职管理"小工具(1218)
4. 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点(1059)
5. 《AspectJ Cookbook》读书笔记十三: 定义通知 (1018)
评论排行榜
1. 插入排序思路与泛型版本的实现(4)
2. 归并排序思路与泛型版本的实现(3)
3. 自编的"个人求职管理"小工具(2)
4. 《AspectJ Cookbook》读书笔记四: 捕获方法上的连接点(2)
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
阅读(1954)
评论(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键可以直接提交]
相关文章:
归并排序思路与泛型版本的实现
插入排序思路与泛型版本的实现