成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java排序算法總結(一):插入排序

開發 后端 算法
有一個已經有序的數據序列,要求在這個已經排好的數據序列中插入一個數,但要求插入后此數據序列仍然有序,這個時候就要用到插入排序法。本文主要介紹的是插入排序的java實現。

插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據。比較和交換的時間復雜度為O(n^2),算法自適應,對于數據已基本有序的情況,時間復雜度為O(n),算法穩定,開銷很低。算法適合于數據已基本有序或者數據量小的情況。

插入算法把要排序的數組分成兩部分:***部分包含了這個數組的所有元素,但將***一個元素除外,而第二部分就只包含這一個元素。在***部分排序后,再把這個***元素插入到此刻已是有序的***部分里的位置。

算法描述

一般來說,插入排序都采用in-place在數組上實現。具體算法描述如下:   

1. 從***個元素開始,該元素可以認為已經被排序   

2. 取出下一個元素,在已經排序的元素序列中從后向前掃描   

3. 如果該元素(已排序)大于新元素,將該元素移到下一位置   

4. 重復步驟3,直到找到已排序的元素小于或者等于新元素的位置   

5. 將新元素插入到下一位置中   

6. 重復步驟2   

如果比較操作的代價比交換操作大的話,可以采用二分查找法來減少比較操作的數目。該算法可以認為是插入排序的一個變種,稱為二分查找排序。

代碼實現

  1. public void insertionSort() {// 插入排序  
  2. int out, in;  
  3. int count1 = 0, count2 = 0;// 復制次數,比較次數  
  4. for (out = 1; out < nElems; out++) {  
  5. long temp = a[out];  
  6. in = out;  
  7. boolean flag=in>0&&a[in-1]>=temp;  
  8. while(flag){  
  9. if(a[in-1]>=temp){  
  10. if(in>0){  
  11. a[in]=a[in-1];  
  12. count1++;  
  13. --in;   
  14. }  
  15. }  
  16. count2++;  
  17. flag=in>0&&a[in-1]>=temp;  
  18. }   
  19. a[in] = temp;  
  20. }  
  21. System.out.println("復制次數為:" + count1 + " 比較次數為:" + count2);  

插入排序法在數據已有一定順序的情況下,效率較好。但如果數據無規則,則需要移動大量的數據,其效率就與冒泡排序法和選擇排序法一樣差了。

【編輯推薦】

  1. 18.1.4 插入排序法
  2. 介紹C#直接插入排序
  3. 經典四講貫通C++排序之一 插入排序
責任編輯:于鐵 來源: 百度
相關推薦

2023-10-05 09:01:05

插入排序對象序列log2i

2023-10-07 00:11:37

希爾排序算法

2023-03-06 08:10:52

數據結構算法數據

2021-01-21 05:22:36

排序算法選擇

2023-10-04 18:23:02

插入排序算法

2011-04-20 13:56:08

選擇排序

2011-04-20 14:19:00

希爾排序

2011-04-20 14:07:37

冒泡排序

2011-04-20 15:06:44

堆排序

2011-04-20 15:20:03

快速排序

2011-04-11 13:41:34

插入排序排序C++

2011-04-20 14:29:07

歸并排序

2011-04-20 16:05:15

基數排序

2023-09-19 23:07:53

Python算法

2019-09-17 16:30:18

java排序算法

2015-08-26 10:13:55

排序算法總結

2009-08-03 17:45:04

C#直接插入排序

2015-09-01 10:21:53

排序算法總結

2021-10-11 09:38:41

開源

2020-03-27 09:06:54

選擇排序算法冒泡排序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区视频在线观看 | 久久伊人一区二区 | 日韩激情视频一区 | 影音先锋欧美资源 | 精品福利在线 | 久久亚洲欧美日韩精品专区 | 久久精品亚洲精品国产欧美 | 天堂免费看片 | 欧美一二三四成人免费视频 | 成人精品久久 | 国内激情av片 | 国产精品成人一区二区三区夜夜夜 | 国产成人精品一区二区在线 | 综合在线视频 | jizz在线看片| 亚洲国产精品人人爽夜夜爽 | www.日本精品 | 色综合一区二区三区 | 在线看免费 | jizz在线免费观看 | 久久在线 | 国产精品三级 | 久久久精品一区二区三区 | 91在线| 欧美日韩综合 | 国产精品日韩在线观看 | 久久国产视频网 | 午夜精品久久久久久久久久久久 | 国产高清在线精品一区二区三区 | 国产精品久久国产精品 | 欧美激情一区 | 国产精品视频网站 | 夜夜爽99久久国产综合精品女不卡 | 午夜精品久久久 | 日韩中文字幕在线播放 | 欧美a级成人淫片免费看 | 日韩在线中文字幕 | 中文字幕一区二区三区精彩视频 | 在线小视频| 国产午夜精品一区二区三区在线观看 | 久久久久久成人 |