如何实现鸡尾酒排序算法
在我们做开发中,不论你采用什么语言做开发工具,都需要积累,或者掌握一些算法,作为我们解决一些业务的手段;其中,在排序的算法,鸡尾酒排序作为经典算法中的一种,历来为广大程序员所喜爱,笔者本人也是受益匪浅;下面,就通过实例来讲解一下,如何实现鸡尾酒排序算法。
问题简介和思路
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;如下:
d)再定义一个方法,用来调用CatchSorts()对指定的数组进行鸡尾酒排序,该方法中定义个一个一维的int型数组,用来表示要排序的数组,方法名为:sort;如下:
e)最后,在Main方法中,我们首先定义一个int类型的数组,然后调用sort()来进行排序,最后循环遍历出数组中的每个数字;如下:
最后的效果如下图:
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。