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算法学习者的宝典,通过深入学习和实践其中的算法,开发者可以全面提升自己的编程技能,为解决实际问题打下坚实的基础。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。因此,对于...
在这个名为"learning:java算法学习"的资料中,我们可以预期找到一系列与Java算法相关的学习资源。 首先,我们要明白算法是解决问题或执行任务的精确步骤,是计算机科学的基础。Java作为面向对象的语言,其类和对象...
本文将深入探讨"Arithmetic: java 算法学习"这个主题,特别是与排序相关的算法。 首先,让我们了解一下什么是算法。算法是一系列明确的步骤,用于解决特定问题或完成特定任务。在Java中,算法通常以方法(methods)...
总之,Java算法的学习和实践是一个持续深化的过程,涉及到理论知识的理解、编程技巧的掌握以及实际问题的解决能力。通过阅读和研究“Java算法PDF版”这样的资料,可以系统地提升这方面的能力,为成为一名优秀的软件...
"leetcode题库-learn-java-algorithm:java算法学习"是一个专注于Java算法学习的项目,它包含了一系列从LeetCode这个知名的在线编程挑战平台选取的题目。LeetCode是一个全球开发者广泛使用的平台,它提供了各种算法...
该资源旨在为学习者提供丰富的JAVA算法编程题目和答案,以帮助他们提高编程能力和算法设计能力。 描述:java算法编程题目及答案50道 描述部分强调了资源的主要内容:50道JAVA算法编程题目及答案。这表明该资源提供...
Java算法是计算机科学中的核心部分,对于任何Java开发者来说,理解和掌握算法都是非常重要的。这本电子书涵盖了Java语言实现的各种算法,旨在帮助读者提升编程能力...希望这本书能成为你Java算法学习旅程中的宝贵资料。
Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。这份资料主要针对使用Java语言进行算法实现的开发者,适用于那些对ANT、EJB、J2EE、JAVA和SPRING等技术栈有了解或兴趣的人群。下面我们将深入...
Java算法设计涵盖了许多核心编程概念,是解决复杂问题的关键工具。这个压缩包文件包含了各种算法的实现,让我们逐一探讨它们。 1. **排序算法**:排序是数据处理的基础,这里可能包括了各种经典排序算法,如快速...
近100算法,有利于学习java算法。值得好好学习和借鉴。
总之,《Java算法大全》是一本不可多得的Java算法学习资源,无论你是初学者还是经验丰富的开发者,都能从中获益匪浅,不断提升自己的编程能力。而文件"codefans.net"可能是该书的源码或示例代码,提供了实践和学习的...
JAVA经典算法面试39题及答案 本资源总结了39道经典的 JAVA 算法面试题目,每个题目都附带答案,涵盖了常见的算法问题,旨在帮助读者更好地掌握 JAVA 编程语言和算法设计。 算法概述 算法是计算机科学中最重要的...
在Java算法学习中,常见的一些知识点包括: 1. **排序算法**:快速排序、归并排序、冒泡排序、插入排序、选择排序等,它们各有优缺点,适用于不同的数据场景。 2. **搜索算法**:二分查找、深度优先搜索(DFS)、...
Java算法大全涵盖了编程中最核心、最实用的算法,这些算法是每位Java开发者应当掌握的基础技能。这个压缩包包含了近100种不同的算法实现,旨在帮助开发者提升编程能力,理解和解决实际问题。以下是对其中一些关键...
通过以上介绍,我们可以看出这个Java遗传算法排课系统是一个结合了优化算法、数据库技术和软件工程实践的综合性项目,对于学习和理解遗传算法在实际问题中的应用以及Java开发有着重要的参考价值。
本文将深入探讨“JAVA算法分析”,旨在帮助读者从深层次理解Java语言,并结合算法思想提升编程能力。 首先,Java语言为实现高效算法提供了良好的支持。其面向对象的特性使得代码更易于组织和复用,接口、抽象类和...
首先,让我们详细探讨一下Java算法的重要性。算法是解决问题的步骤或方法,是计算机科学的基础。在Java编程中,良好的算法设计和实现能力能够极大地提高代码的效率和可读性。通过解决这些算法题,开发者可以锻炼逻辑...