Java实现冒泡排序
自从上次写了二分法查找代码后突然打算好好学习一下数据结构.买了一本数据结构与算法......
import java.util.Random;
/**
*
* @author leon.lee
*/
public class BubbleSort {
private int[] arrayData;
public void printArrayList(){
if (arrayData!=null){
for(int i:arrayData){
System.out.print(i+",");
}
System.out.println("");
}
}
private void swap(int x,int y){
int tempV = arrayData[x];
arrayData[x]=arrayData[y];
arrayData[y]=tempV;
}
public void sort(){
/*
* 如果为了效率则把swap方法直接写在代码里,并且不要使用currentValue和nextValue变量
* 如此写法只是为了让结构清晰,方便阅读
*/
for(int i=0;i<arrayData.length;i++){
for(int j=0;j<arrayData.length-i-1;j++){
int currentValue = arrayData[j];
int nextValue = arrayData[j+1];
if(currentValue>nextValue){
swap(j,j+1);
}
}
}
}
private void initData(){
Random r = new Random(System.currentTimeMillis());
for(int i=0;i<arrayData.length;i++){
arrayData[i]=r.nextInt(100);
}
}
public BubbleSort(int arraylength){
if(arraylength<1){
throw new ExceptionInInitializerError("您不能使用小于1的数字");
}else if(arraylength>100){
throw new ExceptionInInitializerError("您不能使用大于100的数字");
}
arrayData = new int[arraylength];
initData();
}
public static void main(String[] args) {
BubbleSort bs ;
try{
bs = new BubbleSort(50);
}catch(ExceptionInInitializerError e){
System.out.println(e.getMessage());
return;
}
bs.printArrayList();
bs.sort();
bs.printArrayList();
}
}
run:
6,54,18,6,29,85
相关文档:
Java Servlet API说明文档(2.1a版)(四)
术语表\r
bytecode
字节码:由Java编译器和Java解释程序生成的机器代码。
cookie
由Web服务器建立的数据,该数据存储在用户的计算机上,提供了一个Web站点跟踪用户的参数并 ......
//文件的打开
import java.awt.FileDialog;
import java.awt.event.*;
import java.io.*;
import java.io.File;
import java.io.FileReader;
public class FileOpen {
private FileDialog filedialog_open;
private String fileopen = null, filename = null;// 用于存放打开文件地址 和文件名
private File fi ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAV ......
本文将告诉你学习Java需要达到的30个目标,希望能够对你的学习有所帮助。对比一下自己,你已经掌握了这30条中的多少条了呢?
1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习JAVA语言的基础 ......
mysql数值范围
tinyint -128~127 0~255
smallint -32768~32767 0~65535
mediumint -8388608~8388607 0~16777215
int -2147483648~2147483647 0~4294967295
bigint -9223372036854775808~9223372036854775807 0~18446744073709551615
java中
byte ......