中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網站須要什么技術曹操seo博客

做網站須要什么技術,曹操seo博客,常見網站性能優(yōu)化手段,網站建設公司轉型快速排序(Quick Sort)是計算機科學與技術領域中非常經典的一種排序算法,由C. A. R. Hoare在1960年提出。它應用分治思想進行排序,通過對數(shù)據(jù)進行分區(qū)操作,并遞歸地對分區(qū)后的子序列進行排序,從而達到整個序…

快速排序(Quick Sort)是計算機科學與技術領域中非常經典的一種排序算法,由C. A. R. Hoare在1960年提出。它應用分治思想進行排序,通過對數(shù)據(jù)進行分區(qū)操作,并遞歸地對分區(qū)后的子序列進行排序,從而達到整個序列有序的目的。

基本思想

快速排序的核心思想是在待排序序列中選擇一個基準值(pivot),然后將小于基準值的元素放在基準值的左邊,大于基準值的元素放在基準值的右邊,這樣就找到了基準值在數(shù)組中的正確位置。之后,再分別對基準值左右兩邊的子序列進行同樣的操作,直到整個序列有序。

排序流程

快速排序算法通過多次比較和交換來實現(xiàn)排序,其排序流程大致如下:

  1. 選擇基準值:在待排序序列中選取一個元素作為基準值。
  2. 分區(qū)操作:通過一趟排序將待排序的數(shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另一部分的所有數(shù)據(jù)要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數(shù)據(jù)變成有序序列。
  3. 遞歸排序:對基準值左右兩邊的子序列遞歸地執(zhí)行上述分區(qū)操作,直到子序列的長度為1或0,即已經有序。

排序步驟

以數(shù)組為例,快速排序的詳細步驟可以歸納為:

  1. 設置兩個指針:通常設置兩個指針i和j,分別指向序列的起始位置和末尾位置。
  2. 選擇基準值:可以選擇序列的第一個元素作為基準值,也可以采用其他策略選擇基準值。
  3. 分區(qū)操作
    • 從后往前搜索(j--),找到第一個小于基準值的元素A[j],將其與A[i]交換。
    • 從前往后搜索(i++),找到第一個大于基準值的元素A[i],將其與A[j]交換。
    • 重復上述步驟,直到i和j相遇,此時基準值就位于其最終位置。
  4. 遞歸排序:對基準值左邊的子序列和右邊的子序列分別進行快速排序。

性能分析

  • 時間復雜度:快速排序的平均時間復雜度為O(n log n),但在最壞情況下(如輸入序列已經有序或接近有序),時間復雜度會退化到O(n^2)。這通常是由于基準值選擇不當導致的。
  • 空間復雜度:快速排序的空間復雜度主要取決于遞歸的深度。在最好的情況下,遞歸深度為logn,空間復雜度為O(logn)。但在最壞情況下,遞歸深度可能達到n,空間復雜度為O(n)。然而,由于快速排序是原地排序(in-place sort),除了遞歸所需的??臻g外,不需要額外的存儲空間,因此可以認為其空間復雜度是O(logn)(不考慮遞歸棧)。

注意事項

  • 快速排序不是一種穩(wěn)定的排序算法,即相同的元素在排序后可能會改變它們之間的相對位置。
  • 快速排序的性能受到基準值選擇策略的影響,因此在實際應用中需要選擇合適的基準值選擇策略以提高排序效率。

隨機值

在快速排序中,選擇基準值(pivot)的策略對算法的性能有著顯著的影響。傳統(tǒng)的快速排序實現(xiàn)可能會選擇序列的第一個、最后一個或中間元素作為基準值,但這些策略在某些情況下(如輸入序列已經部分或完全有序)可能導致算法性能退化到O(n^2)。

為了避免這種情況,一種常用的改進方法是隨機選擇基準值。通過隨機選擇基準值,可以大大減少算法陷入最壞情況的可能性,從而提高算法的平均性能。

隨機選擇基準值的步驟

  1. 生成隨機數(shù):首先,生成一個隨機數(shù)randIdx,該隨機數(shù)的范圍是0到n-1(其中n是序列的長度)。

  2. 選擇基準值:然后,將randIdx對應的元素選為基準值。這通常涉及到將基準值元素與序列的某個位置(如第一個或最后一個位置)的元素進行交換,以便于后續(xù)的分區(qū)操作。

  3. 進行分區(qū):使用選定的基準值對序列進行分區(qū)操作,將小于基準值的元素放在基準值的左邊,大于基準值的元素放在基準值的右邊。

  4. 遞歸排序:對基準值左邊和右邊的子序列遞歸地執(zhí)行上述過程,直到子序列的長度為0或1。

優(yōu)點

  • 減少最壞情況的發(fā)生:隨機選擇基準值可以顯著降低算法陷入最壞情況(即每次分區(qū)都只得到一個空子序列)的可能性。

  • 提高平均性能:通過隨機化,算法的平均性能更加穩(wěn)定,不易受到輸入數(shù)據(jù)的影響。

注意事項

  • 隨機數(shù)的生成:在生成隨機數(shù)時,需要確保隨機數(shù)生成器的質量,以避免產生可預測的序列。

  • 實現(xiàn)復雜度:雖然隨機選擇基準值可以提高性能,但它也增加了實現(xiàn)的復雜度。特別是在多線程或并行快速排序的實現(xiàn)中,需要更加小心地處理隨機數(shù)的生成和基準值的選擇。

  • 內存和性能權衡:在某些情況下,為了生成隨機數(shù)和進行交換操作,可能會引入額外的內存訪問和計算開銷。然而,這些開銷通常遠小于因避免最壞情況而獲得的性能提升。

912. 排序數(shù)組

給你一個整數(shù)數(shù)組?nums,請你將該數(shù)組升序排列。

示例 1:

輸入:nums = [5,2,3,1]
輸出:[1,2,3,5]

示例2:

輸入:nums = [5,1,1,2,0,0]
輸出:[0,0,1,1,2,5]

提示:

  • 1 <= nums.length <= 5 * 104
  • -5 * 104 <= nums[i] <= 5 * 104

若令第一個值為基準元素,提交會顯示不通過(超時)

class Solution {
public:void quicksort( vector<int>& nums ,int i,int j){if(i<j){   int l=i,r=j;int plt=nums[l];while(l<r){while (l < r && nums[r] >= plt) r--;while (l < r && nums[l] <= plt) l++;if(l<r){swap(nums[l],nums[r]);}}swap(nums[l],nums[i]);quicksort(nums,i,r-1);quicksort(nums,l+1,j);}}vector<int> sortArray(vector<int>& nums) {int i=0;int j=nums.size()-1;quicksort(nums,i,j);return nums;}
};

基準值采用隨機值,可以通過

class Solution {
public:void quicksort( vector<int>& nums ,int i,int j){if(i<j){   int l=i,r=j;int x = rand() % (r - l + 1) + l; // 基于隨機的原則swap(nums[l], nums[x]);int plt=nums[l];while(l<r){while (l < r && nums[r] >= plt) r--;while (l < r && nums[l] <= plt) l++;if(l<r){swap(nums[l],nums[r]);}}swap(nums[l],nums[i]);quicksort(nums,i,r-1);quicksort(nums,l+1,j);}}vector<int> sortArray(vector<int>& nums) {int i=0;int j=nums.size()-1;quicksort(nums,i,j);return nums;}
};

http://www.risenshineclean.com/news/55205.html

相關文章:

  • 畢業(yè)設計做網站有什么好的創(chuàng)意百度瀏覽器下載安裝2023版本
  • 怎樣去建設廳網站核實身份南京網絡優(yōu)化培訓
  • 做一款推薦類的網站網站seo視頻
  • 領動做的網站怎么樣西安網站開發(fā)制作公司
  • 網頁制作題庫哈爾濱網站優(yōu)化流程
  • 做b2b網站如何盈利模式新聞今天最新消息
  • 微信網站設計價格網站流量分析的指標有哪些
  • 比特幣做空網站廣州seo網絡推廣員
  • 日本男女做受網站怎么建造自己的網站
  • 公司做網站 優(yōu)幫云新軟件推廣
  • 網站頁面設計欣賞模板競價托管資訊
  • 做網站 服務器多少錢一年網絡營銷課程設計
  • 國內做外貿如何訪問外國網站站長之家權重
  • 網絡網站制作技巧工業(yè)設計公司
  • 西部數(shù)碼備案域名購買seo培訓教程視頻
  • 買賣域名掙幾十萬標題優(yōu)化seo
  • 廣東網站設計費用網絡推廣的渠道有哪些
  • 建網站一般最低多少錢什么是網絡推廣營銷
  • 濰坊做網站哪家公司最好搜索引擎營銷包括
  • 用什么工具做網站視圖營銷策略ppt模板
  • php asp網站開發(fā)站長之家seo一點詢
  • 免費建立網站空間資源搜索神器
  • 蘇州h5模板建站seo網站優(yōu)化快速排名軟件
  • 虛擬網站服務器關鍵詞歌詞林俊杰
  • 專門做dm單的網站互聯(lián)網營銷師培訓課程
  • 重慶網站建設velpai營銷管理
  • 求網頁設計與網站建設我為什么不建議年輕人做運營
  • 廣州網站模板建站關鍵詞研究工具
  • 個人網站可以做咨詢嗎seo面試常見問題及答案
  • 做番號網站的 違法磁力鏈最好用的搜索引擎