陣列0,1和陣列0,1,2排序

2021-09-27 08:03:52 字數 674 閱讀 1337

陣列有0和1,將0排在1之前

思路:採用兩個指標,乙個從前乙個從後。

p0找到不為0的值,p1找不到不為1的值,二者進行交換。

void

sort2

(int

* arr,

int len)

}

陣列有0,1和2,將0排在1之前,1排在2之前

時間複雜度o(n)

思路:通過三個下標遍歷一遍實現的方法。

p0從左側開始,指向第乙個非0的數字;p2從右側開始,指向第乙個非2的數字。

p1從p0開始遍歷,如果是1,p1繼續遍歷,直到p1遇到0或者2

如果遇到0,則和p0進行交換,然後p0向右,指向第乙個非0的數字

如果遇到2,則和p2進行交換,然後p2向左,指向第乙個非2的數字

#include

using namespace std;

void

sort

(int

* arr,

int len)

else}}

intmain()

;sort

(arr,11)

;for

(int i=

0;i<

11;i++

)}

0 1排序引理

演算法導論 第3版 第8章 思考題8 7 針對兩個陣列元素a i 和a j ia,i,j ifa i a j exchange a i with a j 經過比較交換操作之後,我們得到a i a j 遺忘比較交換演算法是指演算法只按照事先定義好的操作執行,即需要比較的位置下標必須事先確定好。雖然演算...

01 排序 選擇排序

基本原理 對於給定的一組資料,經過第一輪比較後得到最小的資料,然後將該資料與第乙個資料的位置進行交換 然後對不包括第乙個資料以外的其它資料進行第二輪比較,得到最小的資料並與第二個資料進行位置交換 重複該過程,直到進行比較的資料只有乙個時為止。舉例 待排序陣列 38,65,97,76,13,27,49...

js陣列詳解(四) 排序API

1.排序 自定義排序 冒泡 排序api arr.sort 大問題 預設將所有元素轉為字串再按字串排列 只能對字串型別的元素正確排序 解決 自定義比較規則 比較器函式 專門比較任意兩值大小的函式 要求 兩個引數 a,b 返回值 如果a b,就返回正數 如果a降序 顛倒比較器函式的正負號,可改公升序為降...