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编程,还能了解如何结合GUI、事件处理、算法和异常处理等多方面知识,实现一个完整的应用程序。实践这样的项目,对于理解编程思维和提高编程能力有着极大的帮助。
对于初学者来说,通过编写五子棋游戏,可以深入理解Java编程语言、面向对象设计、事件处理以及算法的应用。下面我们将详细探讨Java五子棋算法和代码实现的关键知识点。 1. **基本结构**:一个完整的Java五子棋项目...
标题中的“拼图小游戏,Java ...通过阅读和运行源代码,初学者可以了解如何使用Java和Swing构建图形用户界面,以及如何实现简单的游戏逻辑。对于有经验的开发者来说,这是一个深入研究Java GUI编程和优化的好例子。
对于初学者来说,通过编写小游戏来学习Java是一个既有趣又有成效的方法。这里,我们有两个经典的小游戏项目:贪吃蛇和飞机大战,它们都是Java初学者可以尝试的实践项目。 首先,让我们深入了解一下贪吃蛇游戏。...
蚁群算法是一种优化技术,源于生物学中的蚂蚁寻路行为,由Marco Dorigo在1992年提出。它属于一种分布式、自下而上的计算...无论是初学者还是经验丰富的开发者,都能从中受益,进一步提升对优化算法的理解和应用能力。
在本项目"java初学者连连看"中,我们看到一位初学者尝试用Java编程语言实现了一个经典的连连看游戏。这个游戏通常包含两个主要部分:游戏逻辑和用户界面。下面将详细介绍这个项目可能涉及的Java知识点。 1. **Java...
Java算法大全是一个全面涵盖编程面试中常见算法的资源集合,旨在帮助开发者提升算法理解与应用能力。这个压缩包包含了近100种不同的算法,涵盖了数据结构、...无论是初学者还是经验丰富的开发者,都能从中受益匪浅。
围棋游戏源代码是一款基于Java语言开发的小型游戏项目,非常适合初学者进行学习和研究。它提供了基础的围棋游戏逻辑,让玩家可以在计算机上体验到这一经典的策略性游戏。通过分析这款源代码,初学者可以了解到Java...
从给定的文件信息来看,这是一款基于Java的简单打字游戏代码,旨在帮助Java初学者通过实践加深对编程的理解,同时在游戏中提升打字技能。接下来,我们将详细解析这款游戏中涉及的关键知识点。 ### Java Applet ...
光盘使用说明.doc文件很可能是关于如何导入和运行这些代码的指南,对于初学者来说,遵循这些说明能更顺利地进行学习。 总之,《修炼Java开发技术:在架构中体验设计模式和算法之美》通过结合理论与实践,为Java...
这个项目旨在通过实际操作,帮助初学者深入理解JAVA编程,并体验游戏开发的乐趣。 首先,JAVA坦克大战的核心是利用JAVA语言进行编程。JAVA是一种广泛使用的面向对象的编程语言,其特点包括跨平台性、强类型和垃圾...
在学习编程语言,尤其是Java这样的面向对象编程语言时,实践是非常关键的...虽然项目中没有直接的代码解析,但是通过分析和修改代码,初学者可以深入学习和体验Java编程的全过程,这也是自我学习和提升的一种有效方式。
《俄罗斯方块》是一款经典的游戏,它以其...通过这个项目,JAVA初学者不仅可以巩固和提升编程技能,还能体验到游戏开发的乐趣。记得在实践中不断学习和改进,遇到问题时积极寻求解答,相信你会从这个过程中收获颇丰。
总之,“数据结构与算法分析+Java语言描述(原书第3版)”是一本不可多得的教材,无论你是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,你将能够更好地驾驭编程世界,攀登技术高峰。
总的来说,这个项目涵盖了Web开发的多个核心领域,包括前后端交互、数据库设计、用户认证、内容管理以及用户体验优化,对于想要学习Java Web开发的初学者来说,这是一个非常有价值的实战项目。通过学习和实践这个...
如果这个压缩包中包含了这些内容,那么它将对初学者特别有价值,因为注释和文档可以帮助他们更好地吸收和消化新的知识。 6. **测试用例**:为了检验代码的正确性和性能,实践中通常会包含测试用例。这些用例覆盖了...
总之,《JAVA学习宝典》是一本全面且深入的Java教程,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过学习这本书,你不仅可以掌握Java编程的基础,还能提升解决问题和算法设计的能力,从而在Java的...
在Java编程世界里,初学者通常通过编写小程序来学习和理解基本概念。"200个Java初学者必看的小程序"这个资源旨在为新手提供一个丰富的实践平台,帮助他们巩固基础知识并逐步提升编程能力。这里我们将深入探讨这些小...
在本资源中,我们拥有的是一个Java开发的益智类手游源代码,名为"HappyHome",这为初学者提供了一个宝贵的实践平台。这个项目,称为"MerryHomestead",显然是游戏的核心部分,包含了实现游戏逻辑和界面的各种文件。...