`
雷博弈
  • 浏览: 17044 次
  • 性别: Icon_minigender_1
  • 来自: 四川
文章分类
社区版块
存档分类
最新评论

数组的排序和打印

阅读更多
今天一个朋友打印一个三位数组,我看了后,写了一个通用的。贴出来,也不至于Blog这么空荡。
Integer[] array = new Integer[] { 1, 2 ,3}以此数组为例。
    
Set set = new HashSet();//用来装排序后的下标
//计算数组有多少种排序方式。
int count = 1;
for (int cou = 2; cou <= array.length; cou++) {
count = count * cou;
}

while (true) {
// 用来储存数组下标
List list = new ArrayList();
for (int j = 0; j < array.length; j++) {
int s = new Random().nextInt(array.length);
list.add(s);
}
// 用来过虑重复的下标,如 1,1,0
Set indexSet = new HashSet();
for (Object object4 : list) {
indexSet.add(object4);
}
// 过虑后的下标,(是合法的加入set集合)
if (indexSet.size() == array.length) {
set.add(list);
}
// 看是不是达到了数据的排列方式的总数
if (set.size() == count) {
break;
}
}
// 输出
for (Object object : set) {
// 判断是不是List
if (object instanceof List) {
// 强转(里面装的是数字下标)
List curList = (List) object;
// 用来装排列后的集合
List<List> allList = new ArrayList<List>();
// 用来装排列后的数组
List newList = new ArrayList();
for (Object object3 : curList) {
// 添加到新的集合
newList.add(array[new Integer(object3.toString())]);
// 如果他的长度和数组的长度相同,说明是一个数组
if (newList.size() == array.length) {
// 添加到总的集合
allList.add(newList);
}
}
for (List list : allList) {
System.out.println(list.toString());
}
}
}


------打印结果------
[3, 2, 1]
[1, 3, 2]
[2, 3, 1]
[2, 1, 3]
[3, 1, 2]
[1, 2, 3]
分享到:
评论

相关推荐

    二维数组排序

    // 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...

    用VS2010 C# 数组排序 方法

    本文将深入探讨在Visual Studio 2010环境下使用C#语言进行数组排序的方法,这不仅是初学者理解基本算法概念的良好起点,也是资深开发者优化代码性能的实践指南。 ### 知识点一:C#中的数组定义 在C#中,数组是一种...

    随机数排序_20个随机数_数组排序_源码

    以上就是针对"随机数排序_20个随机数_数组排序_源码"这一主题的关键知识点,涵盖了随机数生成、数组操作、排序算法及其性能、源码分析等方面。理解这些概念对于提升编程技能和解决问题能力非常有帮助。

    数组排序(VB6.0代码编写)给定一个数组,把不是升序的数据去掉,然后重新赋给另一数组

    在VB6.0编程环境中,数组排序是一项常见的任务,它涉及到对一组数值或对象进行排列,使其按照特定的顺序(如升序或降序)排列。在这个特定的案例中,我们要实现的功能是去除一个数组中非升序的元素,并将剩下的升序...

    c语言二维数组冒泡排序

    如果需要根据其他列进行排序,或者实现完全的二维数组排序(比如按照行和列的组合排序),则需要更复杂的逻辑。例如,你可以先按照第一列排序,然后再对每一行的子序列按照第二列排序,以此类推。这将涉及到嵌套排序...

    数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况

    在Java编程中,面对"数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况"这样的需求,我们需要使用特定的算法来处理。这个问题可以通过多种方法解决,这里我们将详细介绍一种常见且有效的方法:...

    C#程序设计实验4-数组排序和计算

    【C#程序设计实验4-数组排序和计算】 在C#程序设计中,数组是一种基本的数据结构,用于存储同一类型的多个数据。本实验的目的在于帮助学生深入理解和熟练掌握数组的使用,包括创建、读取、排序以及计算数组元素的...

    php-leetcode题解之二维数组回形排序打印.zip

    在本压缩包“php-leetcode题解之二维数组回形排序打印.zip”中,主要包含的是使用PHP语言解决LeetCode算法问题的相关代码和解析,特别是关于二维数组的回形顺序打印。LeetCode是一个在线的编程练习平台,它提供了...

    使用php对二维数组按数组值进行排序

    最后,我们遍历并打印排序后的数组,可以看到学生按照分数的升序排列。 请注意,如果需要降序排序,只需在`compare_by_score()`函数中改变比较逻辑,即当$a['score']大于$b['score']时返回1,小于时返回-1。 总结...

    将两数组合并成一个数组并排序

    最后,通过循环打印出合并并排序后的数组`C`。 这个操作在处理大量数据时尤其有用,例如在数据库查询、数据分析或者算法竞赛中。掌握数组的合并和排序技巧对于任何编程学习者来说都是基础且重要的。了解并熟练运用...

    数组排序(VB6.0源代码编写)

    以上就是使用VB6.0源代码实现数组排序和去除非升序元素的基本步骤。理解这些概念并熟练运用到实际项目中,能够帮助你更高效地处理各种数据操作。在实践中,你还可以根据需求优化这些算法,比如使用更高效的排序算法...

    java各种数组排序插入交换选择归类基数排序.pdf

    本文将深入探讨几种常见的数组排序算法,包括插入排序、交换排序、选择排序和归并排序,以及基数排序。这些算法在不同的场景下有不同的效率表现,选择合适的排序方法对程序性能有着显著影响。 1. 插入排序: 插入...

    JavaScript对象数组排序函数及六个用法

    - 对于对象的排序,由于对象属性在打印时通常会以字母顺序显示,所以在for...in循环中使用对象键数组来正确排序。 3. 函数返回值: - 如果输入的是数组,直接返回排序后的数组。 - 如果输入的是对象,返回一个新...

    c语言数组选择法排序

    在这个例子中,`main()`函数创建了一个数组并调用`selectionSort()`进行排序,最后通过`printArray()`打印排序前后的数组。`selectionSort()`函数中的两个嵌套循环分别实现了上述的外层循环和内层循环功能。 ### ...

    易语言源码挂号法-自定义数据数组排序.rar

    在这个"易语言源码挂号法-自定义数据数组排序.rar"的压缩包中,我们主要探讨的是易语言中关于自定义数据数组的排序算法实现。 首先,我们需要理解自定义数据数组的概念。在易语言中,数组是一种可以存储多个相同...

    c语言数组冒泡排序

    在这个示例中,`bubbleSort`函数实现了冒泡排序的过程,`printArray`函数用于打印数组,`main`函数则是程序的入口点,它定义了一个待排序的数组,并调用了冒泡排序和打印数组的函数。 ### 冒泡排序的效率分析 冒泡...

    java数组排序源代码

    ### Java数组排序源代码分析与理解 #### 一、概览 本文将深入解析一个包含多种排序算法(冒泡排序、选择排序、插入排序、希尔排序)的Java程序,并通过具体的代码实现来帮助读者理解这些排序算法的工作原理及其实现...

    java各种数组排序(插入,交换,选择,归类,基数排序).pdf

    【Java 数组排序算法详解】 在 Java 中,有多种排序算法可以用来对数组进行排序,这些算法根据不同的工作原理和效率被分为不同的类别。本文将详细介绍以下几种排序算法:插入排序、交换排序、选择排序、归并排序...

    java数组排序

    【Java数组排序】在编程中,数组排序是一个基础但重要的概念,它涉及到各种算法和技巧。本文主要讨论了Java中几种常见的数组排序方法,包括冒泡排序、插入排序、双冒泡排序(优化的冒泡排序)以及快速排序。这些排序...

    java各种数组排序(插入,交换,选择,归类,基数排序).docx

    ### Java 数组排序知识点 #### 排序算法的分类及适用场景 在计算机科学中,排序算法是一项重要的技术,用于对数据集进行有序排列。排序算法可以分为多种类型,每种都有其特定的应用场景和效率特点。根据文档提供的...

Global site tag (gtag.js) - Google Analytics