精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談慢速的二次算法與快速的 hashmap

開發(fā) 后端 算法
我們聊到了二次時(shí)間與線性時(shí)間算法的話題,我認(rèn)為在這里寫這篇文章會(huì)很有趣,因?yàn)楸苊舛螘r(shí)間算法不僅在面試中很重要——有時(shí)在現(xiàn)實(shí)生活中了解一下也是很好的!后面我會(huì)快速解釋一下什么是“二次時(shí)間算法” :)

[[424110]]

大家好!昨天我與一位朋友聊天,他正在準(zhǔn)備編程面試,并試圖學(xué)習(xí)一些算法基礎(chǔ)知識(shí)。

我們聊到了二次時(shí)間quadratic-time線性時(shí)間linear-time算法的話題,我認(rèn)為在這里寫這篇文章會(huì)很有趣,因?yàn)楸苊舛螘r(shí)間算法不僅在面試中很重要——有時(shí)在現(xiàn)實(shí)生活中了解一下也是很好的!后面我會(huì)快速解釋一下什么是“二次時(shí)間算法” :)

以下是我們將要討論的 3 件事:

  1. 二次時(shí)間函數(shù)比線性時(shí)間函數(shù)慢得非常非常多
  2. 有時(shí)可以通過使用 hashmap 把二次算法變成線性算法
  3. 這是因?yàn)?hashmap 查找非常快(即時(shí)查詢!)

我會(huì)盡量避免使用數(shù)學(xué)術(shù)語,重點(diǎn)關(guān)注真實(shí)的代碼示例以及它們到底有多快/多慢。

目標(biāo)問題:取兩個(gè)列表的交集

我們來討論一個(gè)簡單的面試式問題:獲取 2 個(gè)數(shù)字列表的交集。 例如,intersect([1,2,3], [2,4,5]) 應(yīng)該返回 [2]

這個(gè)問題也是有些現(xiàn)實(shí)應(yīng)用的——你可以假設(shè)有一個(gè)真實(shí)程序,其需求正是取兩個(gè) ID 列表的交集。

“顯而易見”的解決方案:

我們來寫一些獲取 2 個(gè)列表交集的代碼。下面是一個(gè)實(shí)現(xiàn)此需求的程序,命名為 quadratic.py

  1. import sys
  2.  
  3. # 實(shí)際運(yùn)行的代碼
  4. def intersection(list1, list2):
  5. result = []
  6. for x in list1:
  7. for y in list2:
  8. if x == y:
  9. result.append(y)
  10. return result
  11.  
  12. # 一些樣板,便于我們從命令行運(yùn)行程序,處理不同大小的列表
  13. def run(n):
  14. # 定義兩個(gè)有 n+1 個(gè)元素的列表
  15. list1 = list(range(3, n)) + [2]
  16. list2 = list(range(n+1, 2*n)) + [2]
  17. # 取其交集并輸出結(jié)果
  18. print(list(intersection(list1, list2)))
  19.  
  20. # 使用第一個(gè)命令行參數(shù)作為輸入,運(yùn)行程序
  21. run(int(sys.argv[1]))

程序名為 quadratic.py(LCTT 譯注:“quadratic”意為“二次方的”)的原因是:如果 list1 和 list2 的大小為 n,那么內(nèi)層循環(huán)(if x == y)會(huì)運(yùn)行 n^2 次。在數(shù)學(xué)中,像 x^2 這樣的函數(shù)就稱為“二次”函數(shù)。

quadratic.py 有多慢?

用一些不同長度的列表來運(yùn)行這個(gè)程序,兩個(gè)列表的交集總是相同的:[2]

  1. $ time python3 quadratic.py 10
  2. [2]
  3.  
  4. real 0m0.037s
  5. $ time python3 quadratic.py 100
  6. [2]
  7.  
  8. real 0m0.053s
  9. $ time python3 quadratic.py 1000
  10. [2]
  11.  
  12. real 0m0.051s
  13. $ time python3 quadratic.py 10000 # 10,000
  14. [2]
  15.  
  16. real 0m1.661s

到目前為止,一切都還不錯(cuò)——程序仍然只花費(fèi)不到 2 秒的時(shí)間。

然后運(yùn)行該程序處理兩個(gè)包含 100,000 個(gè)元素的列表,我不得不等待了很長時(shí)間。結(jié)果如下:

  1. $ time python3 quadratic.py 100000 # 100,000
  2. [2]
  3.  
  4. real 2m41.059s

這可以說相當(dāng)慢了!總共花費(fèi)了 160 秒,幾乎是在 10,000 個(gè)元素上運(yùn)行時(shí)(1.6 秒)的 100 倍。所以我們可以看到,在某個(gè)點(diǎn)之后,每次我們將列表擴(kuò)大 10 倍,程序運(yùn)行的時(shí)間就會(huì)增加大約 100 倍。

我沒有嘗試在 1,000,000 個(gè)元素上運(yùn)行這個(gè)程序,因?yàn)槲抑浪鼤?huì)花費(fèi)又 100 倍的時(shí)間——可能大約需要 3 個(gè)小時(shí)。我沒時(shí)間這樣做!

你現(xiàn)在大概明白了為什么二次時(shí)間算法會(huì)成為一個(gè)問題——即使是這個(gè)非常簡單的程序也會(huì)很快變得非常緩慢。

快速版:linear.py

好,接下來我們編寫一個(gè)快速版的程序。我先給你看看程序的樣子,然后再分析。

  1. import sys
  2.  
  3. # 實(shí)際執(zhí)行的算法
  4. def intersection(list1, list2):
  5. set1 = set(list1) # this is a hash set
  6. result = []
  7. for y in list2:
  8. if y in set1:
  9. result.append(y)
  10. return result
  11.  
  12. # 一些樣板,便于我們從命令行運(yùn)行程序,處理不同大小的列表
  13. def run(n):
  14. # 定義兩個(gè)有 n+1 個(gè)元素的列表
  15. list1 = range(3, n) + [2]
  16. list2 = range(n+1, 2*n) + [2]
  17. # 輸出交集結(jié)果
  18. print(intersection(list1, list2))
  19.  
  20. run(int(sys.argv[1]))

(這不是最慣用的 Python 使用方式,但我想在盡量避免使用太多 Python 思想的前提下編寫代碼,以便不了解 Python 的人能夠更容易理解)

這里我們做了兩件與慢速版程序不同的事:

  1. 將 list1 轉(zhuǎn)換成名為 set1 的 set 集合
  2. 只使用一個(gè) for 循環(huán)而不是兩個(gè)

看看 linear.py 程序有多快

在討論 為什么 這個(gè)程序快之前,我們先在一些大型列表上運(yùn)行該程序,以此證明它確實(shí)是很快的。此處演示該程序依次在大小為 10 到 10,000,000 的列表上運(yùn)行的過程。(請記住,我們上一個(gè)的程序在 100,000 個(gè)元素上運(yùn)行時(shí)開始變得非常非常慢)

  1. $ time python3 linear.py 100
  2. [2]
  3.  
  4. real 0m0.056s
  5. $ time python3 linear.py 1000
  6. [2]
  7.  
  8. real 0m0.036s
  9. $ time python3 linear.py 10000 # 10,000
  10. [2]
  11.  
  12. real 0m0.028s
  13. $ time python3 linear.py 100000 # 100,000
  14. [2]
  15.  
  16. real 0m0.048s <-- quadratic.py took 2 minutes in this case! we're doing it in 0.04 seconds now!!! so fast!
  17. $ time python3 linear.py 1000000 # 1,000,000
  18. [2]
  19.  
  20. real 0m0.178s
  21. $ time python3 linear.py 10000000 # 10,000,000
  22. [2]
  23.  
  24. real 0m1.560s

在極大型列表上運(yùn)行 linear.py

如果我們試著在一個(gè)非常非常大的列表(100 億 / 10,000,000,000 個(gè)元素)上運(yùn)行它,那么實(shí)際上會(huì)遇到另一個(gè)問題:它足夠  了(該列表僅比花費(fèi) 4.2 秒的列表大 100 倍,因此我們大概應(yīng)該能在不超過 420 秒的時(shí)間內(nèi)完成),但我的計(jì)算機(jī)沒有足夠的內(nèi)存來存儲(chǔ)列表的所有元素,因此程序在運(yùn)行結(jié)束之前崩潰了。

  1. $ time python3 linear.py 10000000000
  2. Traceback (most recent call last):
  3. File "/home/bork/work/homepage/linear.py", line 18, in <module>
  4. run(int(sys.argv[1]))
  5. File "/home/bork/work/homepage/linear.py", line 13, in run
  6. list1 = [1] * n + [2]
  7. MemoryError
  8.  
  9. real 0m0.090s
  10. user 0m0.034s
  11. sys 0m0.018s

不過本文不討論內(nèi)存使用,所以我們可以忽略這個(gè)問題。

那么,為什么 linear.py 很快呢?

現(xiàn)在我將試著解釋為什么 linear.py 很快。

再看一下我們的代碼:

  1. def intersection(list1, list2):
  2. set1 = set(list1) # this is a hash set
  3. result = []
  4. for y in list2:
  5. if y in set1:
  6. result.append(y)
  7. return result

假設(shè) list1 和 list2 都是大約 10,000,000 個(gè)不同元素的列表,這樣的元素?cái)?shù)量可以說是很大了!

那么為什么它還能夠運(yùn)行得如此之快呢?因?yàn)?hashmap!!!

hashmap 查找是即時(shí)的(“常數(shù)級(jí)時(shí)間”)

我們看一下快速版程序中的 if 語句:

  1. if y in set1:
  2. result.append(y)

你可能會(huì)認(rèn)為如果 set1 包含 1000 萬個(gè)元素,那么這個(gè)查找——if y in set1 會(huì)比 set1 包含 1000 個(gè)元素時(shí)慢。但事實(shí)并非如此!無論 set1 有多大,所需時(shí)間基本是相同的(超級(jí)快)。

這是因?yàn)?nbsp;set1 是一個(gè)哈希集合,它是一種只有鍵沒有值的 hashmap(hashtable)結(jié)構(gòu)。

我不準(zhǔn)備在本文中解釋 為什么 hashmap 查找是即時(shí)的,但是神奇的 Vaidehi Joshi 的 basecs 系列中有關(guān)于 hash table 和 hash 函數(shù) 的解釋,其中討論了 hashmap 即時(shí)查找的原因。

不經(jīng)意的二次方:現(xiàn)實(shí)中的二次算法!

二次時(shí)間算法真的很慢,我們看到的的這個(gè)問題實(shí)際上在現(xiàn)實(shí)中也會(huì)遇到——Nelson Elhage 有一個(gè)很棒的博客,名為 不經(jīng)意的二次方,其中有關(guān)于不經(jīng)意以二次時(shí)間算法運(yùn)行代碼導(dǎo)致性能問題的故事。

二次時(shí)間算法可能會(huì)“偷襲”你

關(guān)于二次時(shí)間算法的奇怪之處在于,當(dāng)你在少量元素(如 1000)上運(yùn)行它們時(shí),它看起來并沒有那么糟糕!沒那么慢!但是如果你給它 1,000,000 個(gè)元素,它真的會(huì)花費(fèi)幾個(gè)小時(shí)去運(yùn)行。

所以我認(rèn)為它還是值得深入了解的,這樣你就可以避免無意中使用二次時(shí)間算法,特別是當(dāng)有一種簡單的方法來編寫線性時(shí)間算法(例如使用 hashmap)時(shí)。

總是讓我感到一絲神奇的 hashmap

hashmap 當(dāng)然不是魔法(你可以學(xué)習(xí)一下為什么 hashmap 查找是即時(shí)的!真的很酷!),但它總是讓人 感覺 有點(diǎn)神奇,每次我在程序中使用 hashmap 來加速,都會(huì)使我感到開心 :) 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-09-15 11:38:36

Hashmap二次算法列表

2020-10-29 15:13:55

數(shù)字科技金融行業(yè)互聯(lián)網(wǎng)

2015-09-01 15:12:45

JavaHashMap那點(diǎn)事

2017-03-24 21:26:26

代碼架構(gòu)Java

2011-08-05 12:36:01

2012-10-09 13:53:33

大型網(wǎng)站算法架構(gòu)

2010-05-19 13:05:39

思科認(rèn)證CCIE安博

2018-07-13 05:40:06

數(shù)據(jù)中心運(yùn)維可視化

2021-10-22 08:21:27

CSS 技巧文字二次加粗

2021-09-03 13:54:45

雙重勒索勒索軟件攻擊

2016-05-11 10:49:03

醫(yī)療SaaS

2012-11-27 10:45:13

路由器LANDHCP

2009-07-02 15:12:50

JSP Jdbc

2021-06-17 12:54:31

勒索軟件網(wǎng)絡(luò)攻擊贖金

2021-12-05 21:05:49

前端JSON API

2024-03-18 09:44:02

HashMap算法Java

2012-08-21 11:55:46

2022-10-20 10:38:11

無服務(wù)器RustC++

2019-04-30 13:09:30

蘋果微軟KOL

2022-03-11 22:52:29

調(diào)試版本編譯器
點(diǎn)贊
收藏

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

久久久一本精品99久久精品| 日本道不卡免费一区| 欧美激情性爽国产精品17p| 一级做a爱片久久| 欧洲精品久久久| 亚洲综合123| 亚洲高清毛片一区二区| 中文成人在线| 国产日韩欧美综合一区| 欧美激情一区二区三区在线视频观看 | 欧美另类在线播放| 国产精品无码av无码| 亚洲免费黄色片| 综合久久婷婷| 欧美日韩综合在线免费观看| 欧美日韩亚洲免费| 尤物视频在线观看国产| 国产伦理久久久久久妇女| 伊人开心综合网| 亚洲专区国产精品| 亚洲伦理一区二区三区| 青青在线精品| 国产精品伦理一区二区| 国产精品免费在线免费| 亚洲一区二区三区日韩| 日本高清不卡一区二区三区视频 | 在线不卡av电影| 国产精品蜜芽在线观看| 欧美在线日韩| 日韩一级片在线播放| 日本丰满大乳奶| 亚洲一区二区三区高清视频| 欧美先锋资源| 亚洲精品国产福利| 精品国产免费av| 色呦呦中文字幕| 欧美精品麻豆| 日韩小视频在线| 最好看的中文字幕| 岛国毛片av在线| 99麻豆久久久国产精品免费优播| 国产69精品久久久| 无码人妻精品一区二区三区温州 | 洋洋av久久久久久久一区| 色婷婷精品国产一区二区三区| 日韩 国产 欧美| 日韩欧美网站| 欧美成人乱码一区二区三区| 成人午夜免费在线| 精品亚洲综合| 国内精品久久久久影院色| 久久99久国产精品黄毛片入口| 呻吟揉丰满对白91乃国产区| 欧美高清你懂的| 亚洲线精品一区二区三区| 国产精品一区二区三区精品| 亚洲男人的天堂在线视频| 欧美日韩一区二区三区视频播放| 欧美一区二区三区四区久久| 国产白丝袜美女久久久久| 国产原创av在线| 久久久影院官网| 欧美一级视频一区二区| 国产探花视频在线播放| 欧美一区一区| 91福利视频在线| 美女av免费观看| 黄色在线播放| 国产日韩精品久久久| 日韩精品电影网站| 亚洲精品无码专区| 视频在线在亚洲| 欧美福利视频网站| 夫妇交换中文字幕| 欧美第一精品| 亚洲美女激情视频| 日本少妇一级片| www.久久.com| 天天操天天综合网| 精品国产三级a∨在线| free性欧美hd另类精品| 久久久久国产精品免费免费搜索| 欧美日韩国产免费一区二区三区| 北岛玲日韩精品一区二区三区| 成人夜色视频网站在线观看| 国产美女久久精品| 日韩欧美亚洲视频| 亚洲欧美视频| 国模叶桐国产精品一区| 国产又大又黄视频| 蜜臂av日日欢夜夜爽一区| 久久久久久亚洲| 中文字幕亚洲精品一区| 久久电影国产免费久久电影| 欧美亚洲激情视频| 亚洲一区二区影视| 成人性生活视频| 全球av集中精品导航福利| 欧美影院一区二区三区| 九九热只有这里有精品| 日本三级视频在线观看| 成人少妇影院yyyy| 久久久av水蜜桃| 一级毛片视频在线观看| 亚洲一级二级在线| 国产成人手机视频| 日韩精品视频中文字幕| 亚洲精品综合精品自拍| 97在线观看免费高| 另类天堂av| 97香蕉久久夜色精品国产| 精品国产欧美日韩不卡在线观看| 欧美日韩老妇| 久久久久久国产精品| 国产成人无码专区| 国产成人8x视频一区二区 | 欧美性受黑人性爽| 精品三级久久| 欧美一卡二卡在线| 少妇av片在线观看| 最新亚洲精品| 日韩精品免费在线观看| 国产成人av无码精品| av毛片精品| 精品国产区一区| 影音先锋资源av| 2023国产精华国产精品| 精品久久久久久久久久久久久久久| 亚洲欧美视频在线播放| 2021年精品国产福利在线| 夜夜嗨av色综合久久久综合网| 精品无码国产一区二区三区51安| 女同一区二区三区| 另类专区欧美制服同性| 强行糟蹋人妻hd中文| 欧美在线视屏| 国产精品免费一区豆花| 欧美午夜黄色| 91在线观看污| 欧美国产一二三区| 国模雨婷捆绑高清在线| 日韩一区二区免费在线电影| 女性裸体视频网站| 欧美日韩一区自拍| 成人免费网站在线观看| 丰满少妇一级片| 亚洲男人都懂的| 夜夜添无码一区二区三区| 免费精品一区二区三区在线观看| 精品国产乱码久久久久久久久| 国产麻豆视频在线观看| 美日韩一级片在线观看| 日韩高清国产一区在线观看| 欧美精品日日操| 91精品国产欧美一区二区18 | 国产色综合网| 久久久久久香蕉网| 午夜精品无码一区二区三区| 91一区二区三区在线播放| 激情五月婷婷六月| 激情都市亚洲| 亚洲人成电影网站色…| 色老板免费视频| 美腿丝袜亚洲色图| 综合一区中文字幕| 国产黄大片在线观看| 亚洲国产天堂久久综合网| 久草国产精品视频| 久久一留热品黄| www.99av.com| 国产香蕉精品| 欧美中文字幕第一页| 黄视频在线播放| 欧美三级电影网站| 亚洲欧美小视频| 国产69精品久久久久777| 色欲色香天天天综合网www| 偷拍亚洲精品| 欧美第一黄网免费网站| 欧美综合视频在线| 最新国产成人在线观看| 日本一本二本在线观看| 亚洲一区二区免费在线观看| 久久免费观看视频| 四虎精品在永久在线观看 | 亚洲一区二区三区午夜| 2021中文字幕在线| 欧美久久久久久久久中文字幕| 免费a v网站| 爽爽淫人综合网网站| 影音先锋欧美资源| 加勒比色老久久爱综合网| 久久视频在线观看免费| 亚洲国产成人精品一区二区三区| 岛国av一区二区三区| 在线播放av网址| 在线观看免费黄色| 又骚又黄的视频| 中文字幕免费观看| 亚洲综合国产激情另类一区| 亚洲欧美中文在线视频| 欧美成人777| 99精品偷自拍| 亚洲欧美视频二区| 精品国产三区在线| 国语自产精品视频在线看抢先版图片| 日本一级免费视频| 精品一区免费| 91在线观看网站| 成年人视频免费在线观看| 91精品国产91久久久久久最新毛片| 日本污视频在线观看| 国产v综合v亚洲欧| 日韩 欧美 高清| 亚洲裸色大胆大尺寸艺术写真| 欧美精品激情在线| 69久久久久| 日韩国产欧美精品在线| 国产suv精品一区二区69| 亚洲精品综合在线| 国产精品免费无码| av电影一区二区| 九九九久久久久久久| 欧美高清在线| 免费一区二区三区| 3d性欧美动漫精品xxxx软件| 欧美插天视频在线播放| 国产高中女学生第一次| 欧美性感一类影片在线播放| 1级黄色大片儿| 亚洲香肠在线观看| 免费一级黄色大片| 99re热视频精品| 秋霞午夜鲁丝一区二区| 激情综合五月婷婷| 亚洲精品手机在线观看| 在线一区免费| 亚洲欧洲精品一区| 日本免费精品| 91精品国产综合久久香蕉最新版| 成人看片免费| 日韩专区在线播放| h视频在线播放| 一本色道久久88综合亚洲精品ⅰ| 天天操天天射天天舔| 亚洲福利精品在线| 亚洲午夜在线播放| 日韩一区欧美一区| 青青青视频在线免费观看| 国产欧美一区二区精品秋霞影院 | 影音先锋中文在线视频| 亚洲成人免费在线视频| www.久久精品.com| 日韩精品一区二区三区老鸭窝| 国产一级18片视频| 欧美日韩一区二区在线| 日韩精品1区2区| 在线观看亚洲成人| 久久精品一区二区三| 一区二区国产视频| 国产网友自拍视频| 国产日韩精品一区二区三区| 调教驯服丰满美艳麻麻在线视频| 欧美国产亚洲另类动漫| 中文字幕乱码av| 伊人婷婷欧美激情| 欧美三级韩国三级日本三斤在线观看| 精品国产乱码久久久久酒店 | 欧美精品视频www在线观看| 91在线公开视频| 精品露脸国产偷人在视频| 亚洲高清毛片一区二区| 欧美性欧美巨大黑白大战| 91精品中文字幕| 精品国产乱码久久久久久老虎| 四虎影视精品成人| 色婷婷**av毛片一区| 日韩a在线观看| 国产亚洲激情在线| 香蕉视频免费在线看| 欧美一级xxx| 天堂在线资源8| 亚洲最大在线视频| 国产美女av在线| 日韩中文在线视频| 羞羞视频在线观看免费| 最近2019中文字幕大全第二页 | 国精产品一区一区三区有限在线| 日本免费一区二区六区| 欧美二区在线播放| 最近高清中文在线字幕在线观看1| 色综合天天狠天天透天天伊人| 蜜桃视频m3u8在线观看| 国产欧美日韩中文| 女同久久另类99精品国产| 亚洲精品成人三区| 亚洲日本黄色| 我的公把我弄高潮了视频| 美女国产精品| 制服.丝袜.亚洲.中文.综合懂| 久久影院电视剧免费观看| 国产喷水在线观看| 国产精品久久毛片a| 日本熟妇色xxxxx日本免费看| 在线观看网站黄不卡| 黄色av一区二区三区| 社区色欧美激情 | 小草在线视频免费播放| 亚洲xxx自由成熟| 欧洲乱码伦视频免费| 男人添女人下部高潮视频在观看 | 欧美富婆性猛交| 99欧美精品| 国产精品一二三在线| 久久av国产紧身裤| 国产av第一区| 美女一区二区视频| 成人免费网站黄| 五月婷婷激情综合| 黄色一级片免费看| 91精品国产综合久久蜜臀| av网站在线免费看| 国产一区二区三区中文| 悠悠资源网亚洲青| 国产精品污www一区二区三区| 久久久久久美女精品| 久久综合久久久久| 久久se精品一区二区| 精品人伦一区二区三电影| 黄色成人在线播放| 亚洲免费不卡视频| 欧美黑人一级爽快片淫片高清| 亚洲国产天堂| 亚洲精美视频| 奇米精品一区二区三区四区| 992kp免费看片| 国产精品久久777777| www青青草原| 在线成人免费观看| 在线免费av网站| 国产精品青草久久久久福利99| 久久99国产精品视频| 国产日韩一区二区在线| caoporm超碰国产精品| 国产午夜小视频| 亚洲福利一二三区| 国产乱子伦精品| 羞羞答答成人影院www| 97人人爽人人| 成人免费视频一区| 欧美日韩成人免费观看| 日韩一区二区三区高清免费看看 | 美女扒开腿让男人桶爽久久动漫| 中文精品无码中文字幕无码专区 | 国产欧美日韩综合一区在线播放| 久久久久无码国产精品一区李宗瑞 | 国产一区二区免费在线观看| 欧美人与拘性视交免费看| 日韩黄色片视频| 国产日韩欧美一区二区三区乱码| 99re热视频| 久久香蕉国产线看观看av| 国产亚洲字幕| 日韩午夜视频在线观看| 日本色综合中文字幕| 亚洲欧美精品久久| 欧美一级视频精品观看| 牛牛精品在线| 成人网在线观看| 最新国产精品| 亚洲一区二区三区无码久久| 一本久久a久久免费精品不卡| 国产jzjzjz丝袜老师水多| 久久99热精品这里久久精品| 精品自拍偷拍| 九九视频精品在线观看| 中文字幕在线一区二区三区| 精品人妻伦一区二区三区久久| 97久久精品视频| 欧美精选一区二区三区| 人人爽人人爽av| 午夜影院在线观看欧美| 国产在线免费观看| 91青青草免费在线看| 免播放器亚洲| 亚洲国产精品免费在线观看| 亚洲成人黄色网址| 中文另类视频| 福利在线一区二区| 国产色一区二区| 97国产精品久久久| 97在线视频精品| 久久看人人摘| 97人妻天天摸天天爽天天| 欧美日韩在线亚洲一区蜜芽| 国产蜜臀av在线播放| 亚洲一区3d动漫同人无遮挡 | 亚洲成人教育av| 电影亚洲一区| 久久99中文字幕|