計(jì)算機(jī) - 話題

    排序算法總結(jié)
    查看(1992) 回復(fù)(11)
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:03
    樓主
    一、插入排序(Insertion Sort)
    1. 基本思想:
    每次將一個(gè)待排序的數(shù)據(jù)元素,插入到前面已經(jīng)排好序的數(shù)列中的適當(dāng)位置,使數(shù)列依然有序;直到待排序數(shù)據(jù)元素全部插入完為止。
    2. 排序過(guò)程: 
    【示例】:
    [初始關(guān)鍵字] [49] 38 65 97 76 13 27 49
        J=2(38) [38 49] 65 97 76 13 27 49
        J=3(65) [38 49 65] 97 76 13 27 49
        J=4(97) [38 49 65 97] 76 13 27 49
        J=5(76) [38 49 65 76 97] 13 27 49
        J=6(13) [13 38 49 65 76 97] 27 49
        J=7(27) [13 27 38 49 65 76 97] 49
        J=8(49) [13 27 38 49 49 65 76 97]

    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:06
    22樓
    Procedure Parttion(Var R : FileType; L, H : Integer; Var I : Integer);
    //對(duì)無(wú)序區(qū)R[1,H]做劃分,I給以出本次劃分后已被定位的基準(zhǔn)元素的位置 //
    Begin
      I := 1; J := H; X := R ;//初始化,X為基準(zhǔn)//
      Repeat
        While (R[J] >= X) And (I < J) Do
          begin
           J := J - 1 //從右向左掃描,查找第1個(gè)小于 X的元素//
           If I < J Then //已找到R[J] 〈X//
             begin
              R := R[J]; //相當(dāng)于交換R和R[J]//
              I := I + 1
             end;
           While (R <= X) And (I < J) Do
              I := I + 1 //從左向右掃描,查找第1個(gè)大于 X的元素///
          end;
         If I < J Then //已找到R > X //
           begin         R[J] := R; //相當(dāng)于交換R和R[J]//
            J := J - 1
           end
      Until I = J;
      R := X //基準(zhǔn)X已被最終定位//
    End; //Parttion //
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:06
    23樓
    Procedure QuickSort(Var R :FileType; S,T: Integer); //對(duì)R[S..T]快速排序//
    Begin
      If S < T Then //當(dāng)R[S..T]為空或只有一個(gè)元素是無(wú)需排序//
        begin
          Partion(R, S, T, I); //對(duì)R[S..T]做劃分//
          QuickSort(R, S, I-1);//遞歸處理左區(qū)間R[S,I-1]//
          QuickSort(R, I+1,T);//遞歸處理右區(qū)間R[I+1..T] //
        end;
    End; //QuickSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:06
    24樓
    Procedure QuickSort(Var R :FileType; S,T: Integer); //對(duì)R[S..T]快速排序//
    Begin
      If S < T Then //當(dāng)R[S..T]為空或只有一個(gè)元素是無(wú)需排序//
        begin
          Partion(R, S, T, I); //對(duì)R[S..T]做劃分//
          QuickSort(R, S, I-1);//遞歸處理左區(qū)間R[S,I-1]//
          QuickSort(R, I+1,T);//遞歸處理右區(qū)間R[I+1..T] //
        end;
    End; //QuickSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:06
    25樓
    Procedure QuickSort(Var R :FileType; S,T: Integer); //對(duì)R[S..T]快速排序//
    Begin
      If S < T Then //當(dāng)R[S..T]為空或只有一個(gè)元素是無(wú)需排序//
        begin
          Partion(R, S, T, I); //對(duì)R[S..T]做劃分//
          QuickSort(R, S, I-1);//遞歸處理左區(qū)間R[S,I-1]//
          QuickSort(R, I+1,T);//遞歸處理右區(qū)間R[I+1..T] //
        end;
    End; //QuickSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    26樓
    五、堆排序(Heap Sort)
    1. 基本思想:
    堆排序是一樹形選擇排序,在排序過(guò)程中,將R[1..N]看成是一顆完全二叉樹的順序存儲(chǔ)結(jié)構(gòu),利用完全二叉樹中雙親結(jié)點(diǎn)和孩子結(jié)點(diǎn)之間的內(nèi)在關(guān)系來(lái)選擇最小的元素。
    2. 堆的定義: N個(gè)元素的序列K1,K2,K3,...,Kn.稱為堆,當(dāng)且僅當(dāng)該序列滿足特性:
           Ki≤K2i Ki ≤K2i+1(1≤ I≤ [N/2])


    堆實(shí)質(zhì)上是滿足如下性質(zhì)的完全二叉樹:樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子結(jié)點(diǎn)的關(guān)鍵字。例如序列10,15,56,25,30,70就是一個(gè)堆,它對(duì)應(yīng)的完全二叉樹如上圖所示。這種堆中根結(jié)點(diǎn)(稱為堆頂)的關(guān)鍵字最小,我們把它稱為小根堆。反之,若完全二叉樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子的關(guān)鍵字,則稱之為大根堆。
    3. 排序過(guò)程:
    堆排序正是利用小根堆(或大根堆)來(lái)選取當(dāng)前無(wú)序區(qū)中關(guān)鍵字小(或最大)的記錄實(shí)現(xiàn)排序的。我們不妨利用大根堆來(lái)排序。每一趟排序的基本操作是:將當(dāng)前無(wú)序區(qū)調(diào)整為一個(gè)大根堆,選取關(guān)鍵字最大的堆頂記錄,將它和無(wú)序區(qū)中的最后一個(gè)記錄交換。這樣,正好和直接選擇排序相反,有序區(qū)是在原記錄區(qū)的尾部形成并逐步向前擴(kuò)大到整個(gè)記錄區(qū)。
    【示例】:對(duì)關(guān)鍵字序列42,13,91,23,24,16,05,88建堆
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    27樓
    五、堆排序(Heap Sort)
    1. 基本思想:
    堆排序是一樹形選擇排序,在排序過(guò)程中,將R[1..N]看成是一顆完全二叉樹的順序存儲(chǔ)結(jié)構(gòu),利用完全二叉樹中雙親結(jié)點(diǎn)和孩子結(jié)點(diǎn)之間的內(nèi)在關(guān)系來(lái)選擇最小的元素。
    2. 堆的定義: N個(gè)元素的序列K1,K2,K3,...,Kn.稱為堆,當(dāng)且僅當(dāng)該序列滿足特性:
           Ki≤K2i Ki ≤K2i+1(1≤ I≤ [N/2])


    堆實(shí)質(zhì)上是滿足如下性質(zhì)的完全二叉樹:樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子結(jié)點(diǎn)的關(guān)鍵字。例如序列10,15,56,25,30,70就是一個(gè)堆,它對(duì)應(yīng)的完全二叉樹如上圖所示。這種堆中根結(jié)點(diǎn)(稱為堆頂)的關(guān)鍵字最小,我們把它稱為小根堆。反之,若完全二叉樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子的關(guān)鍵字,則稱之為大根堆。
    3. 排序過(guò)程:
    堆排序正是利用小根堆(或大根堆)來(lái)選取當(dāng)前無(wú)序區(qū)中關(guān)鍵字小(或最大)的記錄實(shí)現(xiàn)排序的。我們不妨利用大根堆來(lái)排序。每一趟排序的基本操作是:將當(dāng)前無(wú)序區(qū)調(diào)整為一個(gè)大根堆,選取關(guān)鍵字最大的堆頂記錄,將它和無(wú)序區(qū)中的最后一個(gè)記錄交換。這樣,正好和直接選擇排序相反,有序區(qū)是在原記錄區(qū)的尾部形成并逐步向前擴(kuò)大到整個(gè)記錄區(qū)。
    【示例】:對(duì)關(guān)鍵字序列42,13,91,23,24,16,05,88建堆
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    28樓
    五、堆排序(Heap Sort)
    1. 基本思想:
    堆排序是一樹形選擇排序,在排序過(guò)程中,將R[1..N]看成是一顆完全二叉樹的順序存儲(chǔ)結(jié)構(gòu),利用完全二叉樹中雙親結(jié)點(diǎn)和孩子結(jié)點(diǎn)之間的內(nèi)在關(guān)系來(lái)選擇最小的元素。
    2. 堆的定義: N個(gè)元素的序列K1,K2,K3,...,Kn.稱為堆,當(dāng)且僅當(dāng)該序列滿足特性:
           Ki≤K2i Ki ≤K2i+1(1≤ I≤ [N/2])


    堆實(shí)質(zhì)上是滿足如下性質(zhì)的完全二叉樹:樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子結(jié)點(diǎn)的關(guān)鍵字。例如序列10,15,56,25,30,70就是一個(gè)堆,它對(duì)應(yīng)的完全二叉樹如上圖所示。這種堆中根結(jié)點(diǎn)(稱為堆頂)的關(guān)鍵字最小,我們把它稱為小根堆。反之,若完全二叉樹中任一非葉子結(jié)點(diǎn)的關(guān)鍵字均大于等于其孩子的關(guān)鍵字,則稱之為大根堆。
    3. 排序過(guò)程:
    堆排序正是利用小根堆(或大根堆)來(lái)選取當(dāng)前無(wú)序區(qū)中關(guān)鍵字小(或最大)的記錄實(shí)現(xiàn)排序的。我們不妨利用大根堆來(lái)排序。每一趟排序的基本操作是:將當(dāng)前無(wú)序區(qū)調(diào)整為一個(gè)大根堆,選取關(guān)鍵字最大的堆頂記錄,將它和無(wú)序區(qū)中的最后一個(gè)記錄交換。這樣,正好和直接選擇排序相反,有序區(qū)是在原記錄區(qū)的尾部形成并逐步向前擴(kuò)大到整個(gè)記錄區(qū)。
    【示例】:對(duì)關(guān)鍵字序列42,13,91,23,24,16,05,88建堆
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    29樓
    Procedure Sift(Var R :FileType; I, M : Integer);
    //在數(shù)組R[I..M]中調(diào)用R,使得以它為完全二叉樹構(gòu)成堆。事先已知其左、右子樹(2I+1 <=M時(shí))均是堆//
    Begin
      X := R; J := 2*I; //若J <=M, R[J]是R的左孩子//
      While J <= M Do //若當(dāng)前被調(diào)整結(jié)點(diǎn)R有左孩子R[J]//
       begin
        If (J < M) And R[J].Key < R[J+1].Key Then
          J := J + 1 //令J指向關(guān)鍵字較大的右孩子//
            //J指向R的左、右孩子中關(guān)鍵字較大者//
        If X.Key < R[J].Key Then //孩子結(jié)點(diǎn)關(guān)鍵字較大//
          begin
            R := R[J]; //將R[J]換到雙親位置上//
            I := J ; J := 2*I //繼續(xù)以R[J]為當(dāng)前被調(diào)整結(jié)點(diǎn)往下層調(diào)整//
          end;
         Else
          Exit//調(diào)整完畢,退出循環(huán)//
       end
      R := X;//將最初被調(diào)整的結(jié)點(diǎn)放入正確位置//
    End;//Sift//

    Procedure HeapSort(Var R : FileType); //對(duì)R[1..N]進(jìn)行堆排序//
     Begin
      For I := N Div Downto 1 Do //建立初始堆//
       Sift(R, I , N)
      For I := N Downto 2 do //進(jìn)行N-1趟排序//
       begin
        T := R[1]; R[1] := R; R := T;//將當(dāng)前堆頂記錄和堆中最后一個(gè)記錄交換//
        Sift(R, 1, I-1) //將R[1..I-1]重成堆//
       end
    End; //HeapSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    30樓
    Procedure Sift(Var R :FileType; I, M : Integer);
    //在數(shù)組R[I..M]中調(diào)用R,使得以它為完全二叉樹構(gòu)成堆。事先已知其左、右子樹(2I+1 <=M時(shí))均是堆//
    Begin
      X := R; J := 2*I; //若J <=M, R[J]是R的左孩子//
      While J <= M Do //若當(dāng)前被調(diào)整結(jié)點(diǎn)R有左孩子R[J]//
       begin
        If (J < M) And R[J].Key < R[J+1].Key Then
          J := J + 1 //令J指向關(guān)鍵字較大的右孩子//
            //J指向R的左、右孩子中關(guān)鍵字較大者//
        If X.Key < R[J].Key Then //孩子結(jié)點(diǎn)關(guān)鍵字較大//
          begin
            R := R[J]; //將R[J]換到雙親位置上//
            I := J ; J := 2*I //繼續(xù)以R[J]為當(dāng)前被調(diào)整結(jié)點(diǎn)往下層調(diào)整//
          end;
         Else
          Exit//調(diào)整完畢,退出循環(huán)//
       end
      R := X;//將最初被調(diào)整的結(jié)點(diǎn)放入正確位置//
    End;//Sift//

    Procedure HeapSort(Var R : FileType); //對(duì)R[1..N]進(jìn)行堆排序//
     Begin
      For I := N Div Downto 1 Do //建立初始堆//
       Sift(R, I , N)
      For I := N Downto 2 do //進(jìn)行N-1趟排序//
       begin
        T := R[1]; R[1] := R; R := T;//將當(dāng)前堆頂記錄和堆中最后一個(gè)記錄交換//
        Sift(R, 1, I-1) //將R[1..I-1]重成堆//
       end
    End; //HeapSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:07
    31樓
    Procedure Sift(Var R :FileType; I, M : Integer);
    //在數(shù)組R[I..M]中調(diào)用R,使得以它為完全二叉樹構(gòu)成堆。事先已知其左、右子樹(2I+1 <=M時(shí))均是堆//
    Begin
      X := R; J := 2*I; //若J <=M, R[J]是R的左孩子//
      While J <= M Do //若當(dāng)前被調(diào)整結(jié)點(diǎn)R有左孩子R[J]//
       begin
        If (J < M) And R[J].Key < R[J+1].Key Then
          J := J + 1 //令J指向關(guān)鍵字較大的右孩子//
            //J指向R的左、右孩子中關(guān)鍵字較大者//
        If X.Key < R[J].Key Then //孩子結(jié)點(diǎn)關(guān)鍵字較大//
          begin
            R := R[J]; //將R[J]換到雙親位置上//
            I := J ; J := 2*I //繼續(xù)以R[J]為當(dāng)前被調(diào)整結(jié)點(diǎn)往下層調(diào)整//
          end;
         Else
          Exit//調(diào)整完畢,退出循環(huán)//
       end
      R := X;//將最初被調(diào)整的結(jié)點(diǎn)放入正確位置//
    End;//Sift//

    Procedure HeapSort(Var R : FileType); //對(duì)R[1..N]進(jìn)行堆排序//
     Begin
      For I := N Div Downto 1 Do //建立初始堆//
       Sift(R, I , N)
      For I := N Downto 2 do //進(jìn)行N-1趟排序//
       begin
        T := R[1]; R[1] := R; R := T;//將當(dāng)前堆頂記錄和堆中最后一個(gè)記錄交換//
        Sift(R, 1, I-1) //將R[1..I-1]重成堆//
       end
    End; //HeapSort//
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:08
    32樓
    六、幾種排序算法的比較和選擇
    1. 選取排序方法需要考慮的因素:
    (1) 待排序的元素?cái)?shù)目n;
    (2) 元素本身信息量的大小;
    (3) 關(guān)鍵字的結(jié)構(gòu)及其分布情況;
    (4) 語(yǔ)言工具的條件,輔助空間的大小等。
    2. 小結(jié):
    (1) 若n較小(n <= 50),則可以采用直接插入排序或直接選擇排序。由于直接插入排序所需的記錄移動(dòng)操作較直接選擇排序多,因而當(dāng)記錄本身信息量較大時(shí),用直接選擇排序較好。
    (2) 若文件的初始狀態(tài)已按關(guān)鍵字基本有序,則選用直接插入或冒泡排序?yàn)橐恕?br /> (3) 若n較大,則應(yīng)采用時(shí)間復(fù)雜度為O(nlog2n)的排序方法:快速排序、堆排序或歸并排序。
    快速排序是目前基于比較的內(nèi)部排序法中被認(rèn)為是最好的方法。
    (4) 在基于比較排序方法中,每次比較兩個(gè)關(guān)鍵字的大小之后,僅僅出現(xiàn)兩種可能的轉(zhuǎn)移,因此可以用一棵二叉樹來(lái)描述比較判定過(guò)程,由此可以證明:當(dāng)文件的n個(gè)關(guān)鍵字隨機(jī)分布時(shí),任何借助于"比較"的排序算法,至少需要O(nlog2n)的時(shí)間。

    這句話很重要 它告訴我們自己寫的算法 是有改進(jìn)到最優(yōu) 當(dāng)然沒有必要一直追求最優(yōu)
    (5) 當(dāng)記錄本身信息量較大時(shí),為避免耗費(fèi)大量時(shí)間移動(dòng)記錄,可以用鏈表作為存儲(chǔ)結(jié)構(gòu)
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:08
    33樓
    六、幾種排序算法的比較和選擇
    1. 選取排序方法需要考慮的因素:
    (1) 待排序的元素?cái)?shù)目n;
    (2) 元素本身信息量的大小;
    (3) 關(guān)鍵字的結(jié)構(gòu)及其分布情況;
    (4) 語(yǔ)言工具的條件,輔助空間的大小等。
    2. 小結(jié):
    (1) 若n較小(n <= 50),則可以采用直接插入排序或直接選擇排序。由于直接插入排序所需的記錄移動(dòng)操作較直接選擇排序多,因而當(dāng)記錄本身信息量較大時(shí),用直接選擇排序較好。
    (2) 若文件的初始狀態(tài)已按關(guān)鍵字基本有序,則選用直接插入或冒泡排序?yàn)橐恕?br /> (3) 若n較大,則應(yīng)采用時(shí)間復(fù)雜度為O(nlog2n)的排序方法:快速排序、堆排序或歸并排序。
    快速排序是目前基于比較的內(nèi)部排序法中被認(rèn)為是最好的方法。
    (4) 在基于比較排序方法中,每次比較兩個(gè)關(guān)鍵字的大小之后,僅僅出現(xiàn)兩種可能的轉(zhuǎn)移,因此可以用一棵二叉樹來(lái)描述比較判定過(guò)程,由此可以證明:當(dāng)文件的n個(gè)關(guān)鍵字隨機(jī)分布時(shí),任何借助于"比較"的排序算法,至少需要O(nlog2n)的時(shí)間。

    這句話很重要 它告訴我們自己寫的算法 是有改進(jìn)到最優(yōu) 當(dāng)然沒有必要一直追求最優(yōu)
    (5) 當(dāng)記錄本身信息量較大時(shí),為避免耗費(fèi)大量時(shí)間移動(dòng)記錄,可以用鏈表作為存儲(chǔ)結(jié)構(gòu)
    lyh2006
    • 積分:1982
    • 注冊(cè)于:2010-08-01
    發(fā)表于 2010-08-13 23:08
    34樓
    六、幾種排序算法的比較和選擇
    1. 選取排序方法需要考慮的因素:
    (1) 待排序的元素?cái)?shù)目n;
    (2) 元素本身信息量的大小;
    (3) 關(guān)鍵字的結(jié)構(gòu)及其分布情況;
    (4) 語(yǔ)言工具的條件,輔助空間的大小等。
    2. 小結(jié):
    (1) 若n較小(n <= 50),則可以采用直接插入排序或直接選擇排序。由于直接插入排序所需的記錄移動(dòng)操作較直接選擇排序多,因而當(dāng)記錄本身信息量較大時(shí),用直接選擇排序較好。
    (2) 若文件的初始狀態(tài)已按關(guān)鍵字基本有序,則選用直接插入或冒泡排序?yàn)橐恕?br /> (3) 若n較大,則應(yīng)采用時(shí)間復(fù)雜度為O(nlog2n)的排序方法:快速排序、堆排序或歸并排序。
    快速排序是目前基于比較的內(nèi)部排序法中被認(rèn)為是最好的方法。
    (4) 在基于比較排序方法中,每次比較兩個(gè)關(guān)鍵字的大小之后,僅僅出現(xiàn)兩種可能的轉(zhuǎn)移,因此可以用一棵二叉樹來(lái)描述比較判定過(guò)程,由此可以證明:當(dāng)文件的n個(gè)關(guān)鍵字隨機(jī)分布時(shí),任何借助于"比較"的排序算法,至少需要O(nlog2n)的時(shí)間。

    這句話很重要 它告訴我們自己寫的算法 是有改進(jìn)到最優(yōu) 當(dāng)然沒有必要一直追求最優(yōu)
    (5) 當(dāng)記錄本身信息量較大時(shí),為避免耗費(fèi)大量時(shí)間移動(dòng)記錄,可以用鏈表作為存儲(chǔ)結(jié)構(gòu)
    回復(fù)話題
    上傳/修改頭像

    中國(guó)的通用貨幣是什么?

    考研論壇提示:
    1、請(qǐng)勿發(fā)布個(gè)人聯(lián)系方式或詢問他人聯(lián)系方式,包括QQ和手機(jī)等。
    2、未經(jīng)允許不得發(fā)布任何資料出售、招生中介等廣告信息。
    3、如果發(fā)布了涉及以上內(nèi)容的話題或跟帖,您在考研網(wǎng)的注冊(cè)賬戶可能被禁用。

    網(wǎng)站介紹 | 關(guān)于我們 | 聯(lián)系方式 | 廣告業(yè)務(wù) | 幫助信息
    ©1998-2015 ChinaKaoyan.com Network Studio. All Rights Reserved.

    中國(guó)考研網(wǎng)-聯(lián)系地址:上海市郵政信箱088-014號(hào) 郵編:200092 Tel & Fax:021 - 5589 1949 滬ICP備12018245號(hào)

    线中文在线资源 官网| 亚洲一区二区三区在线观看精品中文| 变态SM天堂无码专区| 影院无码人妻精品一区二区| 在线中文字幕精品第5页| 无码人妻AV一二区二区三区| 日韩一本之道一区中文字幕| 超清无码熟妇人妻AV在线电影| 成?∨人片在线观看无码| 中文精品久久久久人妻| av一区二区人妻无码| 日韩中文字幕在线不卡| 毛片无码全部免费| 在线观看中文字幕码| 无码精品蜜桃一区二区三区WW| 中文字幕日本精品一区二区三区| 国产麻豆天美果冻无码视频| 精品深夜AV无码一区二区老年| 最近更新2019中文字幕| 成人毛片无码一区二区三区| 日韩精品无码一区二区三区AV | 久久国产精品无码一区二区三区 | 亚洲人成国产精品无码| 亚洲VA中文字幕无码一二三区| 91中文字幕在线观看| 6080YYY午夜理论片中无码| 日本无码小泬粉嫩精品图| 人妻无码人妻有码中文字幕| 日韩免费无码一区二区三区| 亚洲中文字幕视频国产| 亚洲日韩乱码中文无码蜜桃臀网站 | 永久免费无码网站在线观看个| 色窝窝无码一区二区三区| 国产成人无码免费看视频软件| 亚洲va中文字幕无码久久| 惠民福利中文字幕人妻无码乱精品| 亚洲精品中文字幕无码蜜桃| 无码八A片人妻少妇久久| 爆操夜夜操天天操中文| 亚洲精品无码永久在线观看| 国99精品无码一区二区三区|