职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1866|回复: 0

怎么实现鸡尾酒排序算法

[复制链接]
爱车车 发表于 2011-9-27 09:48 | 显示全部楼层 |阅读模式
       在我们做开发中,不论你采用什么语言做开发工具,都需要积累,或者掌握一些算法,作为我们解决一些业务的手段;其中,在排序的算法,鸡尾酒排序作为经典算法中的一种,历来为广大程序员所喜爱,笔者本人也是受益匪浅;下面,就通过实例来讲解一下,如何实现鸡尾酒排序算法;
       最终实现的效果如下图:
aa59892b0d60c6a3e7cd4066.jpg

工具/原料Vs2008,操作系统:xp及其以上 步骤/方法问题简介和思路:
a)  问题:有一长度为n的数组,我们要把数组内的数据,按照从小到大的顺序排列出来;
b)  思路:鸡尾酒排序,又称搅拌排序和涟漪排序,也称为冒泡派排序,只不过这里是双向冒泡排序法;其过程是:
i. 先对数组从左到右进行升序的冒泡排序;
ii. 再对数组进行从右到左的降序的冒泡排序;
iii. 以此类推,持续的、依次的改变冒泡的方向,并不断缩小没有排序的数组范围;
iv. 例如:对数组内的602、544、414、21这几个成员进行排序,
从左到右:21、602、544、414
从右到左:21、414、602、544
从左到右:21、414、544、602 实例/步骤:
a)  创建一个控制台应用程序,该程序中首先定义个静态的int类型的数组,用来准备排序的数组;数组为:static int[] intArray;
b)  定义一个类,这个类是为了对数组内其中的的两个数进行交换排序用的;方法名为:change;如下:c)  定义一个方法,这个方法是用来实现鸡尾酒排序的方法,这个数组是一维数组,,类型为int型,方法名为:CatchSorts;如下: e1bf87252983ac3935a80f29.jpg d)  再定义一个方法,用来调用CatchSorts()对指定的数组进行鸡尾酒排序,该方法中定义个一个一维的int型数组,用来表示要排序的数组,方法名为:sort;如下:
566d0fdf8d597a4a62279834.jpg e)  最后,在Main方法中,我们首先定义一个int类型的数组,然后条用sort()来进行排序,最后循环遍历出数组中的每个数字;如下:
064936380af1197db9998f38.jpg
91ae68c6202d3e429c163d39.jpg 最后的效果如下图:
aa251d4f8934076faec3ab04.jpg
注意事项在上面的数组中,数字都是笔者自己程序中写好的,那么,请您根据对本次小例程的理解,实现用户在界面上随意输入N个int型数字,都可以正确排序出来,这样一个程序,您可以实现吗?
参考资料蓝光精英计划研发小组
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-20 15:02 , Processed in 0.153522 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表