package com.tang.flight.util; public class AlgSelectSort { /** * 算法 selectSort * 作 者: tangxin * 日 期: 2013-1-29-上午09:50:25 * @param a[0,n-1] * 返回类型: void 按照非降序排列的数组a[0,n-1] */ public void selectSort(int[] a){ //切勿死记硬背找到方式方法 //这个算法的排序又称冒泡排序 //出发点:首先从数组中找到一个最小的放到第一位 //如何第一次找到最小的 for (int i = 0; i < a.length; i++) { //定义临时变量 int b; if((i+1)<a.length&&a[i+1]<a[i]){ b = a[i]; a[i]=a[i+1]; a[i+1]=b; } //伪代码 //输入:{3,5,1,43,29,20}; //输出:3,1,1,29,20,20, //得到如此结果,首先第一点没有把两个元素交换位置 //修改:添加 a[i+1]=a[i]; //输入:{3,5,1,43,29,20}; //输出:3,1,5,29,20,43, //从中看以看到自己的思维方式,只是把后面小的放到前面去了 } } public static void main(String[] args) { AlgSelectSort sort = new AlgSelectSort(); int [] a = {3,5,1,43,29,20}; sort.selectSort(a); for (int i = 0; i < a.length; i++) { System.out.print(a[i]+","); } } }
package com.tang.flight.util; import static org.junit.Assert.*; import org.junit.Test; public class AlgSelectSortTest { @Test public void testSelectSort3() { int[] a; a = new int[] { 3, 5, 1, 43, 29, 20 }; //首先把最小的比较出来 //第一个数字自己就不用和自己做比较了 //输入:{3,5,1,43,29,20}; for (int i = 0; i < a.length - 1; i++) { //如上6个数字第一个a[0]=3比较5次 if (a[i + 1] < a[i]) { int b = a[i]; a[i] = a[i + 1]; a[i + 1] = b; } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } //输入:{3,5,1,43,29,20}; //输出:3,1,5,29,20,43, //从中可以看出自己又陷入了第一个方法里面了 //应该是第一个数字和后面的数字都比较 } @Test public void testSelectSort4() { int[] a; a = new int[] { 3, 5, 1, 43, 29, 20 }; //输入:{3,5,1,43,29,20}; //选最小的 //外循环判断轮数 for (int i = 0; i < a.length-1; i++) { //i数组和j数组比较 先排第一个最小的 在排第二个最小的依次 int min = i; //内循环比较大小 for (int j = i+1; j < a.length; j++) { if (a[j]<a[min]) { int temp = a[min]; a[min] = a[j]; a[j] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } } }
相关推荐
《Java算法学习手册》是一本全面探讨Java编程语言中算法应用与实现的宝贵资源,旨在帮助读者提升在数据结构和算法领域的理解与实践能力。在Java这个强大的编程平台上,掌握算法是提升软件开发效率和质量的关键。下面...
下载之后,你的算法一定会更上一层楼,加油,好好学习
在当今这个信息技术飞速发展的时代,编程语言...这些内容共同构成了一个从入门到精通的Java算法学习路线,为Java学习者提供了一个宝贵的资源,帮助他们逐步提升算法和编程技能,最终达到全面掌握算法知识的目标。
Java作为广泛使用的编程语言,在算法学习和实现...从本项目的文件结构和数量来看,它展现了一个成熟的算法学习平台的框架和规模,对Java算法学习者而言,这不仅是一个学习资源,也是了解算法实现和项目开发的良好范例。
总的来说,这份资源是JAVA算法学习者的宝典,通过深入学习和实践其中的算法,开发者可以全面提升自己的编程技能,为解决实际问题打下坚实的基础。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。因此,对于...
在这个名为"learning:java算法学习"的资料中,我们可以预期找到一系列与Java算法相关的学习资源。 首先,我们要明白算法是解决问题或执行任务的精确步骤,是计算机科学的基础。Java作为面向对象的语言,其类和对象...
本文将深入探讨"Arithmetic: java 算法学习"这个主题,特别是与排序相关的算法。 首先,让我们了解一下什么是算法。算法是一系列明确的步骤,用于解决特定问题或完成特定任务。在Java中,算法通常以方法(methods)...
总之,Java算法的学习和实践是一个持续深化的过程,涉及到理论知识的理解、编程技巧的掌握以及实际问题的解决能力。通过阅读和研究“Java算法PDF版”这样的资料,可以系统地提升这方面的能力,为成为一名优秀的软件...
总之,“Java 经典算法40例”不仅是一套高质量的编程练习题,更是一套完整的Java算法学习资源。通过学习和实践这些经典算法,可以帮助我们加深对Java语言的理解,提高编程能力,从而在日后的软件开发工作中更加...
"leetcode题库-learn-java-algorithm:java算法学习"是一个专注于Java算法学习的项目,它包含了一系列从LeetCode这个知名的在线编程挑战平台选取的题目。LeetCode是一个全球开发者广泛使用的平台,它提供了各种算法...
该资源旨在为学习者提供丰富的JAVA算法编程题目和答案,以帮助他们提高编程能力和算法设计能力。 描述:java算法编程题目及答案50道 描述部分强调了资源的主要内容:50道JAVA算法编程题目及答案。这表明该资源提供...
Java算法是计算机科学中的核心部分,对于任何Java开发者来说,理解和掌握算法都是非常重要的。这本电子书涵盖了Java语言实现的各种算法,旨在帮助读者提升编程能力...希望这本书能成为你Java算法学习旅程中的宝贵资料。
本项目是一个针对Java算法学习者的实用工具,它提供了一套完整的算法实现和学习路径,通过源码的分享和成长记录的撰写,旨在帮助算法初学者快速提升自己的编程技能和算法设计能力。在这个过程中,学习者可以深入理解...
Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。这份资料主要针对使用Java语言进行算法实现的开发者,适用于那些对ANT、EJB、J2EE、JAVA和SPRING等技术栈有了解或兴趣的人群。下面我们将深入...
本书是一本实用的Java算法学习指南,既适合初学者入门,也适合有一定编程基础的开发者进阶。通过对这40个经典算法题目的深入学习,读者可以加深对算法理论的理解,提升编程实践能力,并在日常编程工作中更加得心应手...
Java算法设计涵盖了许多核心编程概念,是解决复杂问题的关键工具。这个压缩包文件包含了各种算法的实现,让我们逐一探讨它们。 1. **排序算法**:排序是数据处理的基础,这里可能包括了各种经典排序算法,如快速...
近100算法,有利于学习java算法。值得好好学习和借鉴。
总之,《Java算法大全》是一本不可多得的Java算法学习资源,无论你是初学者还是经验丰富的开发者,都能从中获益匪浅,不断提升自己的编程能力。而文件"codefans.net"可能是该书的源码或示例代码,提供了实践和学习的...
在Java算法学习中,常见的一些知识点包括: 1. **排序算法**:快速排序、归并排序、冒泡排序、插入排序、选择排序等,它们各有优缺点,适用于不同的数据场景。 2. **搜索算法**:二分查找、深度优先搜索(DFS)、...
总之,《Java算法设计与题解》是一本内容丰富、实践性极强的算法学习书籍。通过阅读和实践书中介绍的算法和编程实例,无论是初学者还是资深开发者,都能在算法思维和编程水平上得到显著的提升。这不仅能帮助解决实际...