`
tangxininjava
  • 浏览: 96657 次
  • 性别: Icon_minigender_1
  • 来自: 遂宁
社区版块
存档分类
最新评论

Java算法学习

    博客分类:
  • J2EE
 
阅读更多
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算法学习

    下载之后,你的算法一定会更上一层楼,加油,好好学习

    JAVA 算法大全

    总的来说,这份资源是JAVA算法学习者的宝典,通过深入学习和实践其中的算法,开发者可以全面提升自己的编程技能,为解决实际问题打下坚实的基础。无论是初学者还是经验丰富的开发者,都可以从中受益匪浅。因此,对于...

    learning:java算法学习

    在这个名为"learning:java算法学习"的资料中,我们可以预期找到一系列与Java算法相关的学习资源。 首先,我们要明白算法是解决问题或执行任务的精确步骤,是计算机科学的基础。Java作为面向对象的语言,其类和对象...

    Arithmetic:java 算法学习

    本文将深入探讨"Arithmetic: java 算法学习"这个主题,特别是与排序相关的算法。 首先,让我们了解一下什么是算法。算法是一系列明确的步骤,用于解决特定问题或完成特定任务。在Java中,算法通常以方法(methods)...

    Java 算法PDF版

    总之,Java算法的学习和实践是一个持续深化的过程,涉及到理论知识的理解、编程技巧的掌握以及实际问题的解决能力。通过阅读和研究“Java算法PDF版”这样的资料,可以系统地提升这方面的能力,为成为一名优秀的软件...

    leetcode题库-learn-java-algorithm:java算法学习

    "leetcode题库-learn-java-algorithm:java算法学习"是一个专注于Java算法学习的项目,它包含了一系列从LeetCode这个知名的在线编程挑战平台选取的题目。LeetCode是一个全球开发者广泛使用的平台,它提供了各种算法...

    JAVA算法编程题目及答案.doc

    该资源旨在为学习者提供丰富的JAVA算法编程题目和答案,以帮助他们提高编程能力和算法设计能力。 描述:java算法编程题目及答案50道 描述部分强调了资源的主要内容:50道JAVA算法编程题目及答案。这表明该资源提供...

    关于java算法的电子书

    Java算法是计算机科学中的核心部分,对于任何Java开发者来说,理解和掌握算法都是非常重要的。这本电子书涵盖了Java语言实现的各种算法,旨在帮助读者提升编程能力...希望这本书能成为你Java算法学习旅程中的宝贵资料。

    java算法全卷(包括基本算法和图算法)

    Java算法全卷涵盖了基本算法和图算法,是学习和提升编程技能的重要资源。这份资料主要针对使用Java语言进行算法实现的开发者,适用于那些对ANT、EJB、J2EE、JAVA和SPRING等技术栈有了解或兴趣的人群。下面我们将深入...

    java算法设计算法

    Java算法设计涵盖了许多核心编程概念,是解决复杂问题的关键工具。这个压缩包文件包含了各种算法的实现,让我们逐一探讨它们。 1. **排序算法**:排序是数据处理的基础,这里可能包括了各种经典排序算法,如快速...

    java 算法(近百种java算法)

    近100算法,有利于学习java算法。值得好好学习和借鉴。

    java算法大全

    总之,《Java算法大全》是一本不可多得的Java算法学习资源,无论你是初学者还是经验丰富的开发者,都能从中获益匪浅,不断提升自己的编程能力。而文件"codefans.net"可能是该书的源码或示例代码,提供了实践和学习的...

    JAVA经典算法面试39题及答案

    JAVA经典算法面试39题及答案 本资源总结了39道经典的 JAVA 算法面试题目,每个题目都附带答案,涵盖了常见的算法问题,旨在帮助读者更好地掌握 JAVA 编程语言和算法设计。 算法概述 算法是计算机科学中最重要的...

    java算法2

    在Java算法学习中,常见的一些知识点包括: 1. **排序算法**:快速排序、归并排序、冒泡排序、插入排序、选择排序等,它们各有优缺点,适用于不同的数据场景。 2. **搜索算法**:二分查找、深度优先搜索(DFS)、...

    java算法大全(很全的java算法)

    Java算法大全涵盖了编程中最核心、最实用的算法,这些算法是每位Java开发者应当掌握的基础技能。这个压缩包包含了近100种不同的算法实现,旨在帮助开发者提升编程能力,理解和解决实际问题。以下是对其中一些关键...

    1204 Java 遗传算法排课java sqlserver.rar_java排课算法_排课_排课系统java_遗传算法Java

    通过以上介绍,我们可以看出这个Java遗传算法排课系统是一个结合了优化算法、数据库技术和软件工程实践的综合性项目,对于学习和理解遗传算法在实际问题中的应用以及Java开发有着重要的参考价值。

    JAVA算法分析-很好的java思想

    本文将深入探讨“JAVA算法分析”,旨在帮助读者从深层次理解Java语言,并结合算法思想提升编程能力。 首先,Java语言为实现高效算法提供了良好的支持。其面向对象的特性使得代码更易于组织和复用,接口、抽象类和...

    java经典算法90题含源码及答案.rar

    首先,让我们详细探讨一下Java算法的重要性。算法是解决问题的步骤或方法,是计算机科学的基础。在Java编程中,良好的算法设计和实现能力能够极大地提高代码的效率和可读性。通过解决这些算法题,开发者可以锻炼逻辑...

Global site tag (gtag.js) - Google Analytics