`
jackroomage
  • 浏览: 1217540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

用1、2、2、3、4、5这六个数字,数字排序经典算法

阅读更多
public class Numarray {
/**
用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,
如:512234、412345等,要求: "4 "不能在第三位, "3 "与 "5 "不能相连.
*/
public static void main(String[] a){
long start;
System.out.println("结果是:");
int count = 0 ;

for(start=122345;start <=543221;start++){
String s = String.valueOf(start);
if(Validate(s))
{
if((s.indexOf("35")==-1)&&(s.indexOf("53")==-1)&&(s.charAt(2)!='4')){
System.out.println(s);
count++;
}
}
}

System.out.println("最后结果共"+count);
}

public static boolean Validate(String l)
{
int[] a = new int[]{0,0,0,0,0};
for(int i=0;i <6;i++)
{ if(l.charAt(i)=='1')
a[0]++;
if(l.charAt(i)=='2')
a[1]++;
if(l.charAt(i)=='3')
a[2]++;
if(l.charAt(i)=='4')
a[3]++;
if(l.charAt(i)=='5')
a[4]++;
}
if(a[0]==1&&a[1]==2&&a[2]==1&&a[3]==1&&a[4]==1)
return true;
else
return false;
}
}

分享到:
评论
3 楼 timer_yin 2013-10-17  
seagrave 写道
这个算法想法不错,但太耗时,我用1、2、2、3、4、5、6、7试了试,大概需要15秒,而采用图遍历的方法不到1秒就得出结果了!!!

有图遍历方法的代码吗,分享一下吧,嘿嘿shuohao@126.com
2 楼 jackroomage 2010-11-03  
你说的很对,是这样的!
1 楼 seagrave 2010-11-03  
这个算法想法不错,但太耗时,我用1、2、2、3、4、5、6、7试了试,大概需要15秒,而采用图遍历的方法不到1秒就得出结果了!!!

相关推荐

    基于Qt5-实现九大排序算法的代码汇总

    在本文中,我们将深入探讨如何使用Qt5框架和C++编程语言实现九大经典的排序算法。Qt5是一个跨平台的应用程序开发框架,它提供了丰富的库和工具,使得开发人员能够便捷地构建用户界面和应用程序逻辑。C++则是一种强大...

    实现所有经典排序算法汇总

    它通过将待排序的数组元素按某个增量分组,对每组使用直接插入排序算法排序,然后逐渐减少增量,直到增量为1,整个数组成为一个有序序列。 6. **归并排序(Merge Sort)** 归并排序是一种分治的排序算法,将待排序的...

    排序算法_随机生成1000个数字_用排序算法排序并比较算法的赋值次数_

    对于不同的排序算法,赋值次数会有所差异,例如插入排序和冒泡排序在最坏情况下会有大约n(n-1)/2次赋值,而快速排序和归并排序通常少于这个数量。 在项目中,我们可以通过在排序过程中计数赋值操作来统计这个次数,...

    最快的排序算法 计算机最快的算法-史上14个最快速算法:孩子的计算能力爆表!大脑堪比计算机!...,排序算法数据结构

    基数排序算法是一种高效的排序算法,它的工作原理是通过将数组按照数字的每个位数排序,以达到排序的目的。基数排序算法的时间复杂度为O(nk),因此它适合大规模的数据排序。 9.桶排序算法 桶排序算法是一种高效的...

    十大经典排序算法.pdf

    十大经典排序算法是数据结构与算法领域中的基础,它们包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序和基数排序。这些算法分别适用于不同的场景,具有各自的时间复杂度...

    VB排序算法源码,支持倒序顺序字符排序数字排序2

    标题中的“VB排序算法源码,支持倒序顺序字符排序数字排序2”表明这是一个使用Visual Basic(VB)编程语言实现的排序算法程序,且具备多种排序功能,包括正序、倒序以及对数字和字符的排序。这个程序可能是对之前...

    排序及基本算法

    5. **基数排序**:基数排序是一种非比较型整数排序算法,其原理类似于人们手工排序扑克牌的过程。它按位数从低位到高位进行排序,适用于固定长度的整数排序。 #### 三、排序算法的比较与选择 不同的排序算法在时间...

    题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    - 虽然在代码中没有直接使用数组,但可以将这个过程理解为在数字数组{1, 2, 3, 4}上的排列操作。生成的所有三位数实际上就是数组元素的一种排列。 4. **程序设计基础**: - 这个问题的解决方案展示了结构化程序...

    基于java语言十大经典排序算法

    **基于Java语言十大经典排序算法** 排序算法是计算机科学中不可或缺的一部分,特别是在数据处理和算法设计领域。在Java编程中,理解并掌握各种排序算法能够帮助开发者提高代码效率,优化性能。以下是Java语言中十大...

    各种经典排序算法C++/C

    这个压缩包文件"各种经典排序算法C++/C"显然包含了多种使用C++和C语言实现的排序算法。以下是对这些算法的详细介绍: 1. **冒泡排序**(Bubble Sort):冒泡排序是最基础的排序算法之一,通过重复遍历待排序的数列...

    常用排序算法java演示

    1. **冒泡排序(Bubble Sort)**:这是一种简单的交换排序,通过重复遍历数组,比较相邻元素并根据需要交换它们,直到没有任何一对数字需要交换。Java中实现冒泡排序的基本思路是使用两个嵌套循环,外层循环控制排序...

    最经典的8大排序算法总结

    基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表示字符串(如名字或日期)和特定格式的浮点数,所以基数排序也不是只能用于整数。其时间...

    5大排序算法

    基数排序是一种非比较型整数排序算法,它的思想是将整数按位数切割成不同的数字,然后按每个位数分别比较。基数排序可以处理大量数据,并且是稳定的排序算法,时间复杂度为O(kn),其中k是数字的最大位数,n是数字的...

    八大排序算法总结

    【排序算法总结】 排序是计算机科学中的一项基本操作,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本文将重点介绍八大排序算法,包括插入排序、希尔排序、交换排序、快速排序、选择排序、堆排序...

    经典的十大排序算法实现

    本资源提供了经典的十大排序算法的C++实现,这对于初学者理解和掌握数据结构基础至关重要。下面我们将详细探讨这十大排序算法及其原理。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的交换排序,通过重复遍历...

    常用排序算法源码

    基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于每一步都是稳定排序,所以基数排序也是稳定的排序算法。它的速度可以非常快,特别是当处理大量数据且...

    十大排序算法.pdf

    每个桶再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序),最后将各个桶中的元素合并。桶排序很适合用在数据分散在一个范围内,数据分散越均匀,效率越高。桶排序不是基于比较的排序算法...

    ListView排序,解决了数字排序

    为了解决这个问题,我们可以自定义一个 ListViewItemComparer 类来实现正确的数字排序。 ListView 排序的实现步骤: 1. 首先,我们需要在 ListView 控件的 ColumnClick 事件中设置排序列和排序顺序。 2. 然后,...

    九种经典排序算法的实现

    本资源提供了九种经典的排序算法实现,全部用C++编程语言编写。以下是这九种排序算法的详细说明: 1. **折半插入排序(Binary Insertion Sort)**: 折半插入排序是一种改进的插入排序,它通过二分查找找到合适的...

    汉字和数字混合排序

    汉字通常使用Unicode编码,如GBK或UTF-8,每个汉字占用2至4个字节,而数字是字符型数据,如'0'到'9',在ASCII码中每个数字占用一个字节。这就意味着在比较时,如果不进行特殊处理,数字会按照其字典顺序(ASCII值)...

Global site tag (gtag.js) - Google Analytics