JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。
快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。
冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。
选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。
插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。
<1>利用Arrays带有的排序方法快速排序
1 import java.util.Arrays;
2 public class Test2{
3 public static void main(String[] args){
4 int[] a={5,4,2,4,9,1};
5 Arrays.sort(a); //进行排序
6 for(int i: a){
7 System.out.print(i);
8 }
9 }
10 }
<2>冒泡排序算法
1 public static int[] bubbleSort(int[] args){//冒泡排序算法
2 for(int i=0;i<args.length-1;i++){
3 for(int j=i+1;j<args.length;j++){
4 if (args[i]>args[j]){
5 int temp=args[i];
6 args[i]=args[j];
7 args[j]=temp;
8 }
9 }
10 }
11 return args;
12 }
<3>选择排序算法
1 public static int[] selectSort(int[] args){//选择排序算法
2 for (int i=0;i<args.length-1 ;i++ ){
3 int min=i;
4 for (int j=i+1;j<args.length ;j++ ){
5 if (args[min]>args[j]){
6 min=j;
7 }
8 }
9 if (min!=i){
10 int temp=args[i];
11 args[i]=args[min];
12 args[min]=temp;
13 }
14 }
15 return args;
16 }
<4>插入排序算法
1 public static int[] insertSort(int[] args){//插入排序算法
2 for(int i=1;i<args.length;i++){
3 for(int j=i;j>0;j--){
4 if (args[j]<args[j-1]){
5 int temp=args[j-1];
6 args[j-1]=args[j];
7 args[j]=temp;
8 }else break;
9 }
10 }
11 return args;
12 }
以上就是java中的四种排序方法。不同的方法效率不一样,下面是不同的算法的比较和数据交换时的大O表示。
冒泡排序:比较O(N2) 数据交换O(N2)
选择排序:比较O(N2) 数据交换O(N)
插入排序:比较O(N2) 复制数据O(N)
在实际应用中,我们要尽量选择效率高的算法。
1、比较常用
try{
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(ClassNotFoundException e){
System.out.println("找不到指定的驱动程序类!");
}catch(SQLException e){
e.printStackTrace();
}
2、通过系统的属性设置
try{
System.setProperty("jdbc.driver","com.mysql.jdbc.Driver");//系统属性指定数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
3、看起来比较直观的一种方式,注册相应的db的jdbc驱动,3在编译时需要导入对应的lib
try{
new com.mysql.jdbc.Driver();//创建driver对象,加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from tablename");
while(rs.next()){//不断指向下一条记录
System.out.println("DeptNo:"+rs.getInt(1));
System.out.println("\tDeptName:"+rs.getString(2));
System.out.println("\tLOC:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
经常忘记怎么连接数据库,贴出来备用
DBConnection.java
import java.sql.*;
import java.util.Locale;
import java.util.PropertyResourceBundle;
/**
* @author study
*
* 从给定的资源信息中得到数据库联接对象
*
*/
public class DBConnection {
Connection conn = null;
/**
* 从给定的资源文件中获得连接数据库的参数
*
*/
public boolean getConnect() {
String str_URL = "";
String str_userName = "";
String str_passWord = ""; // the connect passWord
String str_JdbcDriverName = ""; // the connect JDBCDriverName
// Connection con = null;
try {
PropertyResourceBundle configBundle = (PropertyResourceBundle) PropertyResourceBundle
.getBundle("common.jiangbin.dms.product",
new Locale("cn", "CN"));
if (configBundle == null) {
System.out.println("文件product_cn_CN.properties读入错误");
return false;
}
// the connect URL
str_URL = configBundle.getString("ConnectString");
// the connect userName
str_userName = configBundle.getString("UserID");
// the connect passWord
str_passWord = configBundle.getString("Password");
// the connect JDBCDriverName
str_JdbcDriverName = configBundle.getString("JdbcDriverName");
try {
// 加载驱动程序
Class.forName(str_JdbcDriverName).newInstance();
} catch (ClassNotFoundException e) {
System.out.println("Driver not found");
}
// DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
// DriverManager.registerDriver(null);
this.conn = DriverManager.getConnection(str_URL, str_userName,
str_passWord);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* Returns the conn.
*
* @return Connection
*/
public Connection getConn() {
return conn;
}
/**
* Sets the conn.
*
* @param conn
* The conn to set
*/
public void setConn(Connection conn) {
this.conn = conn;
}
}
属性文件product_cn_CN.properties(用于MSSQL)
ConnectString=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DocManagerSystem
UserID=sa
Password=sa
JdbcDriverName=com.microsoft.jdbc.sqlserver.SQLServerDriver
属性文件product_cn_CN.properties(用于MYSQL)
ConnectString=jdbc:mysql://localhost:3306/mydata
UserID=sa
Password=sa
JdbcDriverName=com.mysql.jdbc.Driver
摘要: 1、面向对象的特征有哪些方面
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类...
阅读全文