摘要:思想快速排序的思想很簡單,整個(gè)排序過程只需要三步在數(shù)據(jù)集之中,找一個(gè)基準(zhǔn)點(diǎn)建立兩個(gè)數(shù)組,分別存儲(chǔ)左邊和右邊的數(shù)組利用遞歸進(jìn)行下次比較實(shí)現(xiàn)如果數(shù)組只有一個(gè)數(shù),就直接返回找到中間數(shù)的索引值,如果是浮點(diǎn)數(shù),則向下取整找到中間數(shù)的值
思想
"快速排序"的思想很簡單,整個(gè)排序過程只需要三步:
(1)在數(shù)據(jù)集之中,找一個(gè)基準(zhǔn)點(diǎn)
(2)建立兩個(gè)數(shù)組,分別存儲(chǔ)左邊和右邊的數(shù)組
(3)利用遞歸進(jìn)行下次比較
JS實(shí)現(xiàn)var needSortArr = [12, 23, 45, 11, 2, 55, 12, 1]; function quickSort (arr) { if (arr.length <= 1) { return arr; //如果數(shù)組只有一個(gè)數(shù),就直接返回; } var num = Math.floor(arr.length / 2), //找到中間數(shù)的索引值,如果是浮點(diǎn)數(shù),則向下取整 numberOfCenter = arr.splice(num, 1), //找到中間數(shù)的值 left = [], right = []; for(var i = 0; i < arr.length; i++) { if (arr[i] < numberOfCenter) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([numberOfCenter], quickSort(right)); } alert(quickSort(needSortArr));
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/80699.html
摘要:快速排序的核心是以基數(shù)為中心,將數(shù)組分為兩個(gè)區(qū)間,小于基數(shù)的放到基數(shù)的左邊,大于基數(shù)的放到基數(shù)的右邊。快速排序在每次挖坑的過程中,需要個(gè)空間存儲(chǔ)基數(shù)。而快速排序的大概需要次的處理,所以占用空間也是個(gè)。 快速排序 原理 快速排序是C.R.A.Hoare提出的一種交換排序。它采用分治的策略,所以也稱其為分治排序。 實(shí)現(xiàn)快速排序算法的關(guān)鍵在于,先在數(shù)組中選一個(gè)數(shù)作為基數(shù),接著以基數(shù)為中心將數(shù)...
摘要:快排是一種不穩(wěn)定的排序算法,在經(jīng)過排序后,等值的元素的相對位置可能發(fā)生改變。 聲明:碼字不易,轉(zhuǎn)載請注明出處,歡迎文章下方討論交流。 前言:Java數(shù)據(jù)結(jié)構(gòu)與算法專題會(huì)不定時(shí)更新,歡迎各位讀者監(jiān)督。本篇文章介紹排序算法中最常用也是面試中最容易考到的排序算法——快排,包括快排的思想和原理、java快排代碼、快排的特點(diǎn)性能和快排的適用場景。 0、其他排序算法索引(待更) java數(shù)據(jù)結(jié)構(gòu)與...
摘要:之所以把歸并排序快速排序希爾排序堆排序放在一起比較,是因?yàn)樗鼈兊钠骄鶗r(shí)間復(fù)雜度都為。歸并排序是一種穩(wěn)定的排序方法。因此,快速排序并不穩(wěn)定。希爾排序思想先將整個(gè)待排序的記錄序列分割成為若干子序列。 showImg(https://segmentfault.com/img/bVbvpYZ?w=900&h=250); 1. 前言 算法為王。 想學(xué)好前端,先練好內(nèi)功,只有內(nèi)功深厚者,前端之路才...
閱讀 3483·2021-11-18 10:02
閱讀 1612·2021-10-12 10:12
閱讀 2990·2021-10-09 09:53
閱讀 4858·2021-09-09 09:34
閱讀 848·2021-09-06 15:02
閱讀 2777·2021-08-05 10:02
閱讀 3134·2019-08-30 15:44
閱讀 3121·2019-08-28 18:04