Life is filled with wonder

置顶随笔 #

[置顶]八皇后

写了两天,
应用递归和回溯.
对如何组织类,
更一步加深
/Files/xyq002444/Queens.rar
八皇后主程序的算法
import java.util.*;

public class QueenSolver {

    
private int count;  //皇后的数目
    private Queen queens[];
    
private Queue<Queen[]> queue;

    
public QueenSolver(int count) {
        
this.count = count;
        queens 
= new Queen[count];
        queue 
= new QueenList<Queen[]>();
        
this.initialize();
        
this.process();
    }

    
//初始化
    private void initialize() {
        
for (int i = 0; i < count; i++{
            queens[i] 
= new Queen(i + 10);
        }

    }

    
//能否放置一个皇后
    private boolean place(Queen queen) {
        
for (int i = 0; i < queen.x - 1; i++{
            
if (queens[i].y == queen.y || queens[i].getX_Y() == queen.getX_Y() || queens[i].getAddXY() == queen.getAddXY()) {
                
return false;
            }

        }

        
return true;
    }


    
private void process() {
        
int k = 1;
        queens[k 
- 1].y = 0;
        
while (k > 0{
            queens[k 
- 1].y = queens[k - 1].y + 1;
            
while (queens[k - 1].y <= count && !this.place(queens[k - 1])) {
                queens[k 
- 1].y = queens[k - 1].y + 1;
            }

            
if (queens[k - 1].y <= count) {
                
if (k == count) {
                    
//                   this.printPosition(queens);
                    Queen[] queenClone = new Queen[queens.length];
                    
for (int i = 0; i < queenClone.length; i++{
                        queenClone[i] 
= new Queen(queens[i].x, queens[i].y);
                    }

                    
for (int i = 0; i < queens.length; i++{
                        queens[i].setXPosition();
                        queens[i].setYPosition();
                    }

                    queue.offer(queenClone);
                }
 else {
                    k 
= k + 1;
                    queens[k 
- 1].y = 0;
                }

            }
 else {
                k 
= k - 1;
            }

        }

    }


    
public void printPosition(Queen[] queens) {
        
for (Queen queen : queens) {
            System.out.println(queen.x 
+ " y: " + queen.y);
        }

    }


    
public Queue<Queen[]> getQueue() {
        
return this.queue;
    }

}

posted @ 2007-12-14 21:14 小屁 阅读(815) | 评论 (2)编辑 收藏

2008年1月15日 #

Java中10种数据库的直连方式

1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);

2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);

4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);

5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);

6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);

7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);

8\access数据库
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

9\\cloudscape
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
String Url="jdbc:derby:E:/database/luo";
Connection con=DriverManager.getConnection(Url);
Statement sta=con.createStatement();

posted @ 2008-01-15 09:29 小屁 阅读(333) | 评论 (0)编辑 收藏

2007年12月14日 #

八皇后

写了两天,
应用递归和回溯.
对如何组织类,
更一步加深
/Files/xyq002444/Queens.rar
八皇后主程序的算法
import java.util.*;

public class QueenSolver {

    
private int count;  //皇后的数目
    private Queen queens[];
    
private Queue<Queen[]> queue;

    
public QueenSolver(int count) {
        
this.count = count;
        queens 
= new Queen[count];
        queue 
= new QueenList<Queen[]>();
        
this.initialize();
        
this.process();
    }

    
//初始化
    private void initialize() {
        
for (int i = 0; i < count; i++{
            queens[i] 
= new Queen(i + 10);
        }

    }

    
//能否放置一个皇后
    private boolean place(Queen queen) {
        
for (int i = 0; i < queen.x - 1; i++{
            
if (queens[i].y == queen.y || queens[i].getX_Y() == queen.getX_Y() || queens[i].getAddXY() == queen.getAddXY()) {
                
return false;
            }

        }

        
return true;
    }


    
private void process() {
        
int k = 1;
        queens[k 
- 1].y = 0;
        
while (k > 0{
            queens[k 
- 1].y = queens[k - 1].y + 1;
            
while (queens[k - 1].y <= count && !this.place(queens[k - 1])) {
                queens[k 
- 1].y = queens[k - 1].y + 1;
            }

            
if (queens[k - 1].y <= count) {
                
if (k == count) {
                    
//                   this.printPosition(queens);
                    Queen[] queenClone = new Queen[queens.length];
                    
for (int i = 0; i < queenClone.length; i++{
                        queenClone[i] 
= new Queen(queens[i].x, queens[i].y);
                    }

                    
for (int i = 0; i < queens.length; i++{
                        queens[i].setXPosition();
                        queens[i].setYPosition();
                    }

                    queue.offer(queenClone);
                }
 else {
                    k 
= k + 1;
                    queens[k 
- 1].y = 0;
                }

            }
 else {
                k 
= k - 1;
            }

        }

    }


    
public void printPosition(Queen[] queens) {
        
for (Queen queen : queens) {
            System.out.println(queen.x 
+ " y: " + queen.y);
        }

    }


    
public Queue<Queen[]> getQueue() {
        
return this.queue;
    }

}

posted @ 2007-12-14 21:14 小屁 阅读(815) | 评论 (2)编辑 收藏

2007年11月10日 #

清静了一些

新换了一个博客,
原来在javaeye的博客,废弃了.
这里让我感觉更清静一些,
记录一些对生活的感悟,
正如我的标题
Life is filled with wonder

posted @ 2007-11-10 19:17 小屁 阅读(160) | 评论 (0)编辑 收藏

仅列出标题