1. 程式人生 > 其它 >1pyqt獲取textEdit控制元件的文字

1pyqt獲取textEdit控制元件的文字

技術標籤:資料結構演算法資料結構排序演算法插入排序

插入排序

  • 我們都玩過撲克牌,會將某張牌抽出來,插入到適合的位置。插入排序的當前索引的左邊的元素都是有序的,但是這個有序序列,並不是最終序列,直到索引來到陣列的最右邊位置。插入排序,可能會涉及到元素的移動。在選擇排序中,演算法的複雜度永遠是O(N*N級別的),而插入排序的時間複雜度,會根據輸入元素的初始順序而決定的
  • 如果對一個已經有序的陣列進行插入排序,那麼會立即發現,每個元素已經在自己合適的位置上了。
  • 對下面陣列進行插入排序
    在這裡插入圖片描述
  • 第一輪,i=0;j=i+1,內層迴圈執行j–的操作,將當前元素arr[j],去與已經拍好序的左邊元素,從右至左的進行比較,若右邊arr[j]<arr[j-1]則交換這個兩個元素的位置。在這裡插入圖片描述
  • 第二輪 i=1,j=i+1,內層迴圈 從arr[2]=13開始,執行j–,在左側尋找比他小的元素,若沒有就原地不動
    在這裡插入圖片描述
  • 第三輪,i=2,j=i+1,內層迴圈從arr[3]=24開始,在已拍好序的右邊開始尋找,他小的元素。

在這裡插入圖片描述
-這裡直接跳到最後一輪, 當i=5時,j=i+1=6,此時arr[6]=3,內層的迴圈經過比較並交換,找到最後一個元素的合適位置
在這裡插入圖片描述

  • 執行j-- ,此時j=5,arr[4]=23,arr[4]=3,繼續交換這個兩個元素,得到下圖。
    在這裡插入圖片描述

  • 最終 排序完畢時,
    在這裡插入圖片描述

 public void  insertSort(int array[],int lenth){
        int
temp; for(int i=0;i<lenth-1;i++){ for(int j=i+1;j>0;j--){ //比較並交換 if(array[j] < array[j-1]){ temp = array[j-1]; array[j-1] = array[j]; array[j] = temp; }//end if }
//end for }//end for }