`

Java算法初体验 致初学者

阅读更多

public class AlgorithmTest {
	static int num[] = {5,2,4,512,402,11,14,1114,1};
	static int temp;
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//bubbleSort();
		//selectSort();
		insertionSort();
	}
        //插入排序
	public static void insertionSort2(){
		for (int i = 1; i < num.length; i++) {
                         //每次循环到的下标上的值大于0 且小于前一下标上的值 则置换两个下标上的值
			for(int j = i; ( j > 0) && (num[j] < num[j - 1]); j--){
				swap(num,j,j-1);
			}
		}
		input(num);
	}


	//插入排序
	public static void insertionSort(){
		for (int i = 1; i < num.length; i++) {
			temp = num[i];//无序值
			int in = i;//标记为空位置 也就是本次循环到的i
			//空位置的前一个值是否比无序值大
			while(in > 0 && num[in - 1] > temp){
				//把前一个值赋给空位置
				num[in] = num[in - 1];
				--in;
			}
			//无序值给空位置 完成置换
			num[in] = temp;
		}
		input(num);
	}
	
//选择排序
	public static void selectSort(){
		//每次循环把最小的放在最前
		for (int i = 0; i < num.length - 1; i++) {
			int min = i;//标记i为最小
			for (int j = i + 1; j < num.length; j++) {
				if(num[j] < num[min])
					min = j;//如果有更小的 置换这两个下标上的值
				swap(num,i ,min);
			}
		}
		input(num);
	}


        //冒泡2
	public static void bubbleSort2(){
		
		for (int i = 0; i < num.length; i++)
			//从最后一个下标上的值依次比对前一个下标上的值
			for (int j = num.length - 1; j > i; j--)
				//把大的放到最后
				if(num[j] < num[j - 1])
					swap(num,j ,j - 1);
		input(num);
	}
	//冒泡排序
	public static void bubbleSort(){
		//i等于数组长度的值 每次循环递减 直到为零
		//从后向前循环数组 每次循环把最大的放到最后 依次执行 排序成功
		for (int i = num.length - 1; i > 0; i--)
			//j=0 每次j+1 循环比对下一个下标上的值
			for (int j = 0; j < i; j++)
				if(num[j] > num[j + 1])
					swap(num,j ,j + 1);
		input(num);
	}
	
	
	public static void swap(int num[],int i, int j){
		temp = num[i];
		num[i] = num[j];
		num[j] = temp; 
	}
	
	public static void input(int num[]){
		for (int i = 0; i < num.length; i++) {
			System.out.print(num[i] + "-");
		}
	}
}
分享到:
评论

相关推荐

    Java各种算法大全

    Java语言在计算机科学领域有着广泛的应用,特别是在解决复杂问题时,算法起着至关重要的作用。本资源"Java各种算法大全"包含了一系列与...这是一份宝贵的资源,无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    java 五子棋 适合初学者的代码

    通过这个项目,初学者不仅可以学习到基础的Java编程,还能了解如何结合GUI、事件处理、算法和异常处理等多方面知识,实现一个完整的应用程序。实践这样的项目,对于理解编程思维和提高编程能力有着极大的帮助。

    Java五子棋算法和代码,新手java五子棋完整代码【完美运行】

    对于初学者来说,通过编写五子棋游戏,可以深入理解Java编程语言、面向对象设计、事件处理以及算法的应用。下面我们将详细探讨Java五子棋算法和代码实现的关键知识点。 1. **基本结构**:一个完整的Java五子棋项目...

    拼图小游戏,Java Swing初体验.zip

    标题中的“拼图小游戏,Java ...通过阅读和运行源代码,初学者可以了解如何使用Java和Swing构建图形用户界面,以及如何实现简单的游戏逻辑。对于有经验的开发者来说,这是一个深入研究Java GUI编程和优化的好例子。

    Java初学者可尝试的Java小游戏(贪吃蛇+飞机大战)

    对于初学者来说,通过编写小游戏来学习Java是一个既有趣又有成效的方法。这里,我们有两个经典的小游戏项目:贪吃蛇和飞机大战,它们都是Java初学者可以尝试的实践项目。 首先,让我们深入了解一下贪吃蛇游戏。...

    蚁群算法JAVA实现

    蚁群算法是一种优化技术,源于生物学中的蚂蚁寻路行为,由Marco Dorigo在1992年提出。它属于一种分布式、自下而上的计算...无论是初学者还是经验丰富的开发者,都能从中受益,进一步提升对优化算法的理解和应用能力。

    java初学者连连看

    在本项目"java初学者连连看"中,我们看到一位初学者尝试用Java编程语言实现了一个经典的连连看游戏。这个游戏通常包含两个主要部分:游戏逻辑和用户界面。下面将详细介绍这个项目可能涉及的Java知识点。 1. **Java...

    Java算法大全(近100种算法打包)

    Java算法大全是一个全面涵盖编程面试中常见算法的资源集合,旨在帮助开发者提升算法理解与应用能力。这个压缩包包含了近100种不同的算法,涵盖了数据结构、...无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    围棋游戏源代码(java语言开发的,很简单,适合初学者)

    围棋游戏源代码是一款基于Java语言开发的小型游戏项目,非常适合初学者进行学习和研究。它提供了基础的围棋游戏逻辑,让玩家可以在计算机上体验到这一经典的策略性游戏。通过分析这款源代码,初学者可以了解到Java...

    简单java打字游戏,非常适合java初学者自娱自乐

    从给定的文件信息来看,这是一款基于Java的简单打字游戏代码,旨在帮助Java初学者通过实践加深对编程的理解,同时在游戏中提升打字技能。接下来,我们将详细解析这款游戏中涉及的关键知识点。 ### Java Applet ...

    修炼Java开发技术:在架构中体验设计模式和算法之美 源盘代码

    光盘使用说明.doc文件很可能是关于如何导入和运行这些代码的指南,对于初学者来说,遵循这些说明能更顺利地进行学习。 总之,《修炼Java开发技术:在架构中体验设计模式和算法之美》通过结合理论与实践,为Java...

    完整版JAVA坦克大战+源代码(适合初学者).rar

    这个项目旨在通过实际操作,帮助初学者深入理解JAVA编程,并体验游戏开发的乐趣。 首先,JAVA坦克大战的核心是利用JAVA语言进行编程。JAVA是一种广泛使用的面向对象的编程语言,其特点包括跨平台性、强类型和垃圾...

    JAVA小游戏,适合初学JAVA的新手

    在学习编程语言,尤其是Java这样的面向对象编程语言时,实践是非常关键的...虽然项目中没有直接的代码解析,但是通过分析和修改代码,初学者可以深入学习和体验Java编程的全过程,这也是自我学习和提升的一种有效方式。

    俄罗斯方块 JAVA初学者练手

    《俄罗斯方块》是一款经典的游戏,它以其...通过这个项目,JAVA初学者不仅可以巩固和提升编程技能,还能体验到游戏开发的乐趣。记得在实践中不断学习和改进,遇到问题时积极寻求解答,相信你会从这个过程中收获颇丰。

    数据结构与算法分析+java语言描述(原书第3版)

    总之,“数据结构与算法分析+Java语言描述(原书第3版)”是一本不可多得的教材,无论你是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,你将能够更好地驾驭编程世界,攀登技术高峰。

    个人内容分享网站源码(java+jquery,适合初学者)

    总的来说,这个项目涵盖了Web开发的多个核心领域,包括前后端交互、数据库设计、用户认证、内容管理以及用户体验优化,对于想要学习Java Web开发的初学者来说,这是一个非常有价值的实战项目。通过学习和实践这个...

    JAVA 算法数据结构代码 演习实践.zip

    如果这个压缩包中包含了这些内容,那么它将对初学者特别有价值,因为注释和文档可以帮助他们更好地吸收和消化新的知识。 6. **测试用例**:为了检验代码的正确性和性能,实践中通常会包含测试用例。这些用例覆盖了...

    JAVA学习宝典,理论与实践结合,众多算法云集——JAVA实战训练.djvu

    总之,《JAVA学习宝典》是一本全面且深入的Java教程,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过学习这本书,你不仅可以掌握Java编程的基础,还能提升解决问题和算法设计的能力,从而在Java的...

    200个Java初学者必看的小程序

    在Java编程世界里,初学者通常通过编写小程序来学习和理解基本概念。"200个Java初学者必看的小程序"这个资源旨在为新手提供一个丰富的实践平台,帮助他们巩固基础知识并逐步提升编程能力。这里我们将深入探讨这些小...

    java的益智类手游源代码,非常适合初学者学习。

    在本资源中,我们拥有的是一个Java开发的益智类手游源代码,名为"HappyHome",这为初学者提供了一个宝贵的实践平台。这个项目,称为"MerryHomestead",显然是游戏的核心部分,包含了实现游戏逻辑和界面的各种文件。...

Global site tag (gtag.js) - Google Analytics