<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Ytl's Java Blog

    厚積而薄發---每一天都是一個全新的開始
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Bubble Sort

    Bubble sort is a simple and well-known sorting algorithm. It is used in practice once in a blue moon and its main application is to make an introduction to the sorting algorithms. Bubble sort belongs to O(n2) sorting algorithms, which makes it quite inefficient for sorting large data volumes. Bubble sort is stable and adaptive.

    Algorithm

    1. Compare each pair of adjacent elements from the beginning of an array and, if they are in reversed order, swap them.
    2. If at least one swap has been done, repeat step 1.

    You can imagine that on every step big bubbles float to the surface and stay there. At the step, when no bubble moves, sorting stops. Let us see an example of sorting an array to make the idea of bubble sort clearer.

    Example. Sort {5, 1, 12, -5, 16} using bubble sort.

    Bubble sort example

    Complexity analysis

    Average and worst case complexity of bubble sort is O(n2). Also, it makes O(n2) swaps in the worst case. Bubble sort is adaptive. It means that for almost sorted array it gives O(n) estimation. Avoid implementations, which don't check if the array is already sorted on every step (any swaps made). This check is necessary, in order to preserve adaptive property.

    Turtles and rabbits

    One more problem of bubble sort is that its running time badly depends on the initial order of the elements. Big elements (rabbits) go up fast, while small ones (turtles) go down very slow. This problem is solved in the Cocktail sort.

    Turtle example. Thought, array {2, 3, 4, 5, 1} is almost sorted, it takes O(n2) iterations to sort an array. Element {1} is a turtle.

    Turtle example

    Rabbit example. Array {6, 1, 2, 3, 4, 5} is almost sorted too, but it takes O(n) iterations to sort it. Element {6} is a rabbit. This example demonstrates adaptive property of the bubble sort.

    Rabbit example

    Code snippets

    There are several ways to implement the bubble sort. Notice, that "swaps" check is absolutely necessary, in order to preserve adaptive property.

    Java

    public void bubbleSort(int[] arr) {

          boolean swapped = true;

          int j = 0;

          int tmp;

          while (swapped) {

                swapped = false;

                j++;

               for (int i = 0; i < arr.length - j; i++) {                               

                      if (arr[i] > arr[i + 1]) {                          

                            tmp = arr[i];

                            arr[i] = arr[i + 1];

                            arr[i + 1] = tmp;

                            swapped = true;

                      }

                }                

          }

    }

    Python

    def bubbleSort(L) :

        swapped = True;

        while swapped:

            swapped = False

            for i in range(len(L)-1):

                if L[i]>L[i+1]:

                    temp = L[i]

                    L[i] = L[i+1]

                    L[i+1] = temp

                    swapped = True

    posted @ 2011-05-06 16:03 ytl| 編輯 收藏

         摘要: 關于二分查找的原理互聯網上相關的文章很多,我就不重復了,但網絡的文章大部分講述的二分查找都是其中的核心部分,是不完備的和效率其實還可以提高,如取中間索引使用開始索引加上末尾索引的和除以2,這種做法在數字的長度超過整型的范圍的時候就會拋出異常,下面是我的代碼,其中可能有些地方沒考慮到或有什么不足  閱讀全文

    posted @ 2011-03-15 12:12 ytl 閱讀(2637) | 評論 (5)編輯 收藏

         摘要:   閱讀全文

    posted @ 2009-11-15 00:18 ytl 閱讀(1114) | 評論 (0)編輯 收藏

    Java處理Excel數據有很多方式,如Apache的POI或JXL等.

    我首先給出一個Excele數據的讀入的方式(使用的是jxl.jar包)

    package com.ccniit.readexcel;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;

    public class ExcelHander {

        
    public static String[] getColName(String desc) {
            InputStream is 
    = null;
            String[] colNames 
    = null;
            
    try {
                is 
    = new FileInputStream(new File(desc));
                Workbook wb 
    = Workbook.getWorkbook(is);
                Sheet sheet 
    = wb.getSheet(0);
                
    int cols = sheet.getColumns();
                colNames 
    = new String[cols];
                
    for (int i = 0; i < cols; i++{
                    colNames[i] 
    = sheet.getCell(i, 0).getContents();
                    
    // System.out.println("列名: " + colNames[i]);
                }

                is.close();
            }
     catch (FileNotFoundException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
     catch (BiffException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
     catch (IOException e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }

            
    return colNames;

        }


        
    public List<Map<String, Object>> readExcel(String desc) {
            List
    <Map<String, Object>> datas = null;
            
    try {
                InputStream is 
    = new FileInputStream(new File(desc));
                Workbook wb 
    = Workbook.getWorkbook(is);
                
    if(wb == null){
                    
    return null;
                }

                Sheet sheet 
    = wb.getSheet(0);
                
    int cols = sheet.getColumns();
                
    int rows = sheet.getRows();
                datas 
    = new ArrayList<Map<String, Object>>();
                
    for (int i = 1; i < rows; i++{
                    Map
    <String, Object> data = new HashMap<String, Object>();
                    
    for (int j = 0; j < cols; j++{
                        String key 
    = sheet.getCell(j, 0).getContents();
                        
    // System.out.println("key:" + key);
                        Object value = (Object) sheet.getCell(j, i).getContents();
                        
    // System.out.println("value:" + value.toString());
                        data.put(key, value);
                    }

                    datas.add(data);
                }

                is.close();
                wb.close();
            }
     catch (FileNotFoundException e) {
                e.printStackTrace();
            }
     catch (BiffException e) {
                e.printStackTrace();
            }
     catch (IOException e) {
                e.printStackTrace();
            }

            
    return datas;
        }


    }



    posted @ 2009-04-12 13:57 ytl 閱讀(425) | 評論 (0)編輯 收藏

    再見了我的 2008

    謹以此文獻給我們的2008年--

    但愿你的點點滴滴永存于我們心間....

    再見我的2008--楊天寧 

    還有一點點的時間
    讓我們用來回憶
    還有一點點的時間
    可以用來哭泣
    可以不管得到還是失去
    輕輕合上眼睛
    緊緊抱著它啊
    時間這樣飛逝
    我們就這樣長大
    我們哭著笑著唱著
    在勇敢地成長
    想想身邊每個朋友
    你們是否不再孤單害怕
    聽時間開始倒記
    這樣隨音樂大聲唱起
    再見我的2008年
    好懷念你在我的身邊
    當昨天它一點點走遠
    我知道我們不能回到從前
    再見我的2008年
    我記得你的每一個瞬間
    無論明天悲喜或是改變
    只希望我們都能快樂一點
    鐘聲它已走遠...

    2008,這一年發生了太多太多的事,或許有些事你已經淡忘,但也有些事會長存于你的心間,難以磨滅.

    在2008年即將離我們而去之際,讓我們回首一下自己這一年所經歷過的點點滴滴.在這一年里,我們哭過,笑過,痛苦過,掙扎過,努力過,認真過,也跌到過,爬起過,遺憾過...無論你在這一年里是達到了自己的目標,實現了夢想,還是犯下了不可彌補的錯誤,讓自己身邊的人受到傷害,這一切都將過去,因為 2008年在你生命中只有一次而已,而它正逐漸離我們而去...

    年初的南方大雪災(家人因為地滑,摔傷)
    手足口病肆虐
    藏獨事件
    網絡開始流行全民"中國心"頭像
    全球華人開展愛國行動 堅決反對西藏獨立
    奧運火炬傳遞活動遭藏獨份子阻礙
    512汶川大地震 無數人在此災難中痛失親人朋友(學校損失被迫異地復課)
    08年8月8日20點 北京奧運會開幕
    劉翔因腿傷退出比賽 成為全民討論熱點
    毒奶粉事件 使中國奶制品業受重創
    起于美國的金融風暴 席卷全球

    2008,是屬于中國人的奧運年.從4年前得知我們要舉辦奧運的那一刻起,到后來奧運圣火輾轉傳遞,然后到奧運會順利開幕,選手們展開精彩角逐,最后到奧運圓滿閉幕,這些都在我們心中留下一個個永生難忘的精彩瞬間 那一個個運動健兒揮灑汗水,頑強拼搏的身影也銘刻于我們心底...

    2008,也是中國多災多難的一年.一個突如其來的大地震,讓無數的人痛失自己摯愛的親人,朋友,也失去了自己心愛的家園...跌倒了,不要緊,最后我們還是爬起來了.當得知這一噩耗時,我們全國同胞都紛紛伸出自己的援助之手,捐資捐物,幫災民重建家園.這也讓我們看到了中華的希望,我們傳統的互助精神并沒有被遺忘.一個災難的磨練,令世人更加清楚地認識到了這個民族的力量所在.

    ......

    對于我而言,2008也是具有里程碑式意義的一年.因為這一年我告別了自己的大學生涯,開始人生新旅程.不曉得我這個句號劃得完不完美,但是我自己無悔就夠了,畢竟我努力過了,就讓所大學以前的記憶,所有記憶都停在這一年吧,也停留在我的內心深處...

    時間推著我們向前 我們是無法停留在原地的 只有把昨天的記憶埋于心底作養料 用現有的來播種 然后期待明天能開出絢爛的花朵...

    再見了,2008;再見了,我的大學生活,雖說是再見卻永遠不會再見,但愿我在往后十年里能有所成就,也希望09年以后,世界能繼續朝著繁榮安定的方向邁進,能順利找到工作.....

    posted @ 2008-12-25 20:09 ytl 閱讀(4938) | 評論 (7)編輯 收藏

    個人在項目開發中總結的。供大家參考

    1.頁面顯示中文時出現的亂碼,通常使用

    1 <%@ page contentType="text/html;charset=gb2312"%>

     

    可以達到處理亂碼的效果

    2.從請求中獲得數據是出現的中文亂碼處理方法有
    (1) get請求有兩種處理方法
    方法1:
    在tomcat的配置文件(conf)中的server.xml的

    1  <Connector port="8080" protocol="HTTP/1.1" 
    2                connectionTimeout="20000" 
    3                redirectPort="8443" 
    4                URIEncoding="gb2312"/>


    加入上面第4行代碼即可。
    方法2:也就是通常說的再編碼的說法,

    1<%
    2   String name=request.getParameter("name");
    3   byte []b = name.getBytes("GB2312");
    4   name=new String(b);
    5%>
    6也可簡化為:
    7<%=new String(request.getParameter().getBytes("GB2312"))
    8%>


    (2)post請求
    在jsp頁面中加入也下代碼

    1<%request.setCharacterEncoding("gb2312");%>

    需要注意的是這部分代碼要放寫在獲得請求內容以前。

    3.以上就是JSP頁面中出現亂碼的方法,最后我想說的就是如何確定發送的
      請求是GET 還是POST。
    (1)一般表單(Form)提交中有method方法確定。
    (2)通過URL鏈接傳遞為GET方法提交
    (3)通過地址重寫的為GET方法提交

    謝謝閱讀

    posted @ 2008-05-08 16:54 ytl 閱讀(1173) | 評論 (3)編輯 收藏

                我是軟件專業現在是大二的學生,我們已經學了1年的Java 知識,現在還沒有開Java Web  我想多

    提前和多學點知識,可我有點迷惑。開始應該還先學JSP方面的知識,學JSP 必須要學習HTML方面的知道,

    如涉及到CSS,JS.如果想把網站設計更美觀的還需要學習PS。當一切都好的時候,可能考慮學習框架,可現

    在Java框架特多,我應該怎么選擇,那些好啊。最后學習J2EE方面東西。我在互聯網上看到,有點人說學習

    J2EE可無EJB,這是真的嗎??還有最后問題學了這樣一切,現在流行AJAX。又要學習這個知識。我想了我

    應該從哪里開始啊。如果都學一個人精力不能有那么多啊,可要是不學那開發做出來東西在外觀或其他方面

    沒有別人好吧。希望那些高手們,幫我出個主意。。謝謝啦。。。

    posted @ 2008-01-14 19:45 ytl 閱讀(1923) | 評論 (12)編輯 收藏

    僅列出標題
    共2頁: 上一頁 1 2 
    主站蜘蛛池模板: 久久久久久久亚洲精品| 成年女人毛片免费视频| 亚洲色一色噜一噜噜噜| 天天综合亚洲色在线精品| 性盈盈影院免费视频观看在线一区| 亚洲高清中文字幕| 精品无码人妻一区二区免费蜜桃| 亚洲国产一区二区a毛片| 午夜影院免费观看| 亚洲精品国产手机| 国产一卡2卡3卡4卡无卡免费视频| 亚洲国产综合在线| 免费人成在线视频| 美女黄频免费网站| 亚洲国产精品成人网址天堂| 一区二区三区免费视频播放器| 日韩亚洲变态另类中文| 特级做A爰片毛片免费看无码| 午夜亚洲国产理论秋霞| 亚洲成年人免费网站| 久久亚洲精品国产亚洲老地址 | 亚洲日韩乱码中文无码蜜桃臀| 亚洲免费在线视频观看| 亚洲综合无码一区二区痴汉| 国产一区二区三区免费在线观看| 一级午夜免费视频| 久久精品国产亚洲AV麻豆王友容| 在线观看成人免费视频不卡| 亚洲乱理伦片在线观看中字| 亚洲色欲或者高潮影院| 无码av免费毛片一区二区| 亚洲heyzo专区无码综合| 久久国产成人亚洲精品影院| 日韩精品无码一区二区三区免费| 亚洲中文字幕AV每天更新| 亚洲精品国产成人影院| 1000部啪啪未满十八勿入免费| 亚洲国产精品无码久久久秋霞1| 亚洲一区无码中文字幕| 无码人妻精品中文字幕免费东京热| 日韩欧美亚洲国产精品字幕久久久|