做小程序的时候,发现数组真的很有用,对于顺序排序随机排序都能用到。
尤其2048的时候,需要用到存图片的位置,尤其能体现出来。
不过我们今天是在选择排序中看,也有所有的定义和去长度部分了,这些主要的函数实现在注解里面写的比较详细,那我们得先回顾一下基本概念:
一维数组
______________________________________________________________________
数组的概念:
1.数组名中存储的是什么内容?
数组名储存的是内存的首地址
数组的每一个元素
2. 实例化一个数组后,数组在内存中以连续的空间进行存储
数组是属于线性的数据结构
3.数组可以是任意类型的(这点个人觉得是很好用的一点,可以用数组存图片等等)
数组的定义:
1. 数据类型 =new 数据类型[长度]
(new关键字 :定义一个对象 开辟内存)
eg: int[] abc=new int[10];
另一种定义数组的方式
int abc[]={值...}
获取数组长度:
数组对象唯一的属性:length
int a=abc.length
数组的操作:
1.获取数组第一个元素
value1=数组名[下标];
数组名[下标]=值;
2.(没有赋值时候,int型默认是0 float:0.0 boolean string :null...可以自己试一试)
给数组赋值
要给数组赋字母的值:;
for(i=0;i<26;i++){
array[i]=((char)97+i)+"";
}
二维数组
________________________________________________________________________
二维数组在概念和操作上很多都相似,下面列出不一样的地方
定义:
int [][] abc=new int[10][10];
获取数组的元素总数:
获取第一个中括号的长度:数组名.length;
获取第一个中括号的长度:数组名[行下标].length ;
数组的操作:
获取元素值
eg: int value1=array[0][3];
数组的基本介绍先到这里,下面是应用了数组我们做的选择排序
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JButton;
public class myTask extends javax.swing.JFrame {
// 定义基本属性
public java.awt.Graphics g;
//主程序入口
public static void main(String args[]) {
myTask mt = new myTask();
mt.showUI();
}
// 初始化界面方法
private void showUI() {
this.setDefaultCloseOperation(3);
this.setSize(600, 700);
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setLayout(new java.awt.FlowLayout());
/*
* 加按钮判断不一样的排序
*/
javax.swing.JButton jbu1 = new JButton("选择排序");
javax.swing.JButton jbu2 = new JButton("其他排序");
jbu1.setBorder(null);
jbu2.setBorder(null);
jbu1.setBackground(new Color(100,200,55));
jbu2.setBackground(new Color(100,200,55));
// 按钮添加监听器
this.add(jbu1);
this.add(jbu2);
// 设置窗体可见
this.setVisible(true);
// 注意要窗体可见后再取得画板
g = this.getGraphics();
taskListener tkl = new taskListener(this, g);
jbu1.addActionListener(tkl);
jbu2.addActionListener(tkl);
// 调用paint方法
paint(g);
}
// 定义paint方法
public void paint(Graphics g) {
super.paint(g);
}
}
继承监听器的类
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.util.Random;
public class taskListener implements java.awt.event.ActionListener {
// 构造方法
private String commandname;
private Graphics g;
public String getCpmmandname() {
return commandname;
}
private myTask mt;
public taskListener(myTask mt, Graphics g) {
this.mt = mt;
this.g = g;
}
// 响应命令
public void actionPerformed(ActionEvent e) {
g.clearRect(0, 0, 800, 800);
g.setFont(new Font("微软雅黑", Font.PLAIN, 20));
g.setColor(Color.gray);
if (e.getActionCommand().equals("选择排序")) {
// 随机数给一个长度为9的数组附上数值
java.util.Random random = new Random();
int[] array = new int[9];
for (int i = 0; i < 9; i++) {
array[i] = random.nextInt(50);
}
g.drawString("原始数据 ", 30, 100);
//先画一个原始数据
for (int i = 0; i < 9; i++) {
g.setColor(Color.white);
g.fillOval(115 + i * 40, 75, 35, 35);
g.setColor(Color.gray);
g.drawString(array[i] + "", 120 + i * 40, 100);
}
// 循环主程序
// 外部循环,从左到右依次取得最小值
for (int i = 0; i < array.length - 1; i++) {
// i从0开始,让min最小值时先为0
int min = i;
// 如果t从i的右边开始循环,遇到更小t值,给min赋t的值,直到取得第一个最小值
for (int t = i + 1; t < array.length; t++) {
if (array[t] < array[min]) {
min = t;
}
}
// 给第i个数组元素赋当前最小值
int temp = array[i];
array[i] = array[min];
array[min] = temp;
// 画出每次交换最小值输出的结果,j是每次输出的一行新数组,以i代表每次最小值交换
for (int j = 0; j < array.length; j++) {
g.setColor(Color.gray);
g.fillOval(120 + j * 40, 125 + i * 50, 35, 35);
g.setColor(Color.white);
g.drawString(" " + array[j], 120 + j * 40, 150 + i * 50);
}
}
}
}
}
运行出来的结果是这样子的
- 大小: 75.7 KB
分享到:
相关推荐
数组应用——一维数组排序; 定义一组无序的整型数列,共10个数值,经过一定的处理,使该数组由大到小排列,并输出到屏幕上。具体要求如下: 定义int型数组arrayorder并赋初值为0,长度为10,以承载该数列; 使用...
java教程-数组应用+冒泡排序+选择排序+插入排序
提出了一种基于数组排序的堆排序方法。 讨论了它的一些优点和缺点。 将其与传统的直接应用方法进行了比较。 在该方法中,在构建空堆之后,将数组中的排序关键字逐一放入堆中。 该方法需要相对较少的空间,适合于有序...
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
数组应用及冒泡排序算法示例,适用于初学者
php 多维数组排序,应用php的多维数组排序函数
JavaScript应用实例-数组映射排序.js
给定一个数组,数组包含10个整型元素,将其按照从小到大的顺序排列后输出,要求排序的算法用子程序来实现。
我把去年刚学C语言时的实验报告发出来供新人们参考,别嫌弃啊(虽然确实很烂!全是免费下载,欢迎来我主页看看) 非常感谢您的观看
树状数组归并排序应用计算数组的小和1
应用c++库函数 qsort实现二维数组排序,即 举例:排序前:{{1,1,0} {3,0,2}, {1,1,1}, {1,2,0}} 排序后:{{1,1,0}, {1,1,1}, {1,2,0}, {3,0,2}}
输入n个数然后按大小排序,数组来实现的这个过程..........................................................
在实际应用,我们经常要用对二维数组中的某一行或者某一列进行排序,然后其他位置要跟排序一起变动
System.out.println("最小值是数组中的第"+minindex+"个数"); //输出七个数中的最大值 int maxindex=0; //定义变量minindex并赋初值用于保存最大值的下标 int max; //定义max并赋初值为0,设做是...
设计一个windows应用程序,输入数组元素,显示数组,再对数组进行排序,再输出排序号的数字 1.从界面输入元素; 2.显示输入的数据; 3.对数组进行排序; 4.显示排序后的数据。
自己写的。数组的排序应用两种方法以及随机数的产生
1.2 应用冒泡排序算法实现数组元素排序的 Java 程序实现示例 1.2.1 在 MyEclipse 开发工具中创建 Java 工程项目 1、启动 MyEclipse 开发工具,并选择 Java Project 工程项目 杨教授工作室 精心创作的优秀程序员 ...
自定义一个数组,通过调用方法来实现排序。
项目教学案例QBASIC一维数组的应用之冒泡排序.pdf
冒泡法排序函数-数组的实际应用