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

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

開發(fā) 后端 算法
有一個已經(jīng)有序的數(shù)據(jù)序列,要求在這個已經(jīng)排好的數(shù)據(jù)序列中插入一個數(shù),但要求插入后此數(shù)據(jù)序列仍然有序,這個時候就要用到插入排序法。本文主要介紹的是插入排序的java實現(xiàn)。

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

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

算法描述

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

1. 從***個元素開始,該元素可以認(rèn)為已經(jīng)被排序   

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

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

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

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

6. 重復(fù)步驟2   

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

代碼實現(xiàn)

  1. public void insertionSort() {// 插入排序  
  2. int out, in;  
  3. int count1 = 0, count2 = 0;// 復(fù)制次數(shù),比較次數(shù)  
  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("復(fù)制次數(shù)為:" + count1 + " 比較次數(shù)為:" + count2);  

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

【編輯推薦】

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

2023-10-05 09:01:05

插入排序對象序列log2i

2023-10-07 00:11:37

希爾排序算法

2023-03-06 08:10:52

數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)

2021-01-21 05:22:36

排序算法選擇

2023-10-04 18:23:02

插入排序算法

2011-04-20 13:56:08

選擇排序

2011-04-20 14:07:37

冒泡排序

2011-04-20 14:19:00

希爾排序

2011-04-11 13:41:34

插入排序排序C++

2011-04-20 15:20:03

快速排序

2011-04-20 15:06:44

堆排序

2011-04-20 14:29:07

歸并排序

2023-09-19 23:07:53

Python算法

2011-04-20 16:05:15

基數(shù)排序

2019-09-17 16:30:18

java排序算法

2015-08-26 10:13:55

排序算法總結(jié)

2009-08-03 17:45:04

C#直接插入排序

2015-09-01 10:21:53

排序算法總結(jié)

2021-10-11 09:38:41

開源

2020-03-27 09:06:54

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

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产一区不卡 | 99久久婷婷国产综合精品电影 | 亚州一区二区三区 | 日本精品一区二区三区在线观看视频 | a免费视频 | 欧美精品三区 | 国产精品美女久久久久久久网站 | 亚洲高清一区二区三区 | 欧美成人h版在线观看 | 91成人在线 | 日韩中文在线 | 天天躁日日躁狠狠的躁天龙影院 | 欧美激情精品久久久久久变态 | 国产精品综合视频 | 91亚洲国产成人久久精品网站 | www.99久久.com | 丁香久久 | 精品久久中文 | 欧美成人一区二免费视频软件 | 特级生活片 | 国产精品综合视频 | 综合网伊人| 作爱视频免费看 | 国产精品一区二区三区免费观看 | 日本成人在线观看网站 | 黄色毛片视频 | 欧美在线一区二区三区 | 亚洲天天干 | 国产精品一区二区久久久久 | 国产免费一级片 | 国产一级免费视频 | 亚洲精品中文字幕 | 91一区| 亚洲精品av在线 | 黄色精品 | 丁香五月网久久综合 | 日韩一级精品视频在线观看 | 久久r久久 | 成人h电影在线观看 | 欧美日韩综合视频 | 性欧美精品一区二区三区在线播放 |