資料結構筆記
將一組數中的奇數和偶數分別儲存在陣列兩側。
1.建立另外兩個陣列,分別儲存奇數和偶數,然後儲存到原陣列。空間複雜度O(3n) 時間複雜度O(2n).
2.雙指標法設定頭結點和尾節點,分別遍歷偶奇數,不符合則交換位置,直到頭結點位置大於等於尾節點。時間複雜度O(n),空間複雜度O(n)。
#include<iostream>
#include<cstdlib>
#include<algorithm>
#include<ctime>
using namespace std;
int arr[10001];
void seed()
{
srand(time(0));
for(int i=0; i<=100; i++)
{
arr[i]=rand()%15554;
}
}
void solve()
{
int i=0,j=100;
while(i<j)
{
while(arr[i]%2==0)
i++;
while(arr[j]%2)
j--;
if(i>=j)
break;
swap(arr[i],arr[j]);
}
//時間複雜度O(n)
}
int main()
{
seed();
solve();
for(int i=0; i<=100; i++)
cout << arr[i]<<' ';
return 0;
}
本來以為是一個簡單的題,沒想到還有優化空間,雙指標法我學過但是遇到題還真想不起來,以前都是一個模組一個訓練,都清楚這是什麼演算法形成慣性思維,但是都放在一起,就傻眼了,感覺就是背了一些套路,但是就是不會用,惰性思維害死人啊。
相關文章
- 資料結構筆記——概述資料結構筆記
- 資料結構筆記——棧資料結構筆記
- 筆記:大話資料結構筆記資料結構
- 資料結構筆記——佇列資料結構筆記佇列
- 資料結構學習筆記資料結構筆記
- 資料結構學習筆記--棧資料結構筆記
- 資料結構學習筆記1資料結構筆記
- 線性表__資料結構筆記資料結構筆記
- 資料結構筆記——演算法資料結構筆記演算法
- 菜鳥筆記之資料結構(24)筆記資料結構
- 資料結構筆記-棧的應用資料結構筆記
- 資料結構筆記——線性表(中)資料結構筆記
- 資料結構筆記——線性表(下)資料結構筆記
- 資料結構學習筆記(一) (轉)資料結構筆記
- 【筆記】-《Redis實戰》- 01 Redis資料結構筆記Redis資料結構
- 2.1資料結構學習筆記--佇列資料結構筆記佇列
- 資料結構筆記——樹的基本概念資料結構筆記
- 《資料結構與演算法分析》筆記資料結構演算法筆記
- C語言_資料結構圖(留個筆記)C語言資料結構筆記
- 資料結構與演算法-學習筆記(16)資料結構演算法筆記
- 筆記-資料結構之 Hash(OC的粗略實現)筆記資料結構
- Redis學習筆記(二)redis 底層資料結構Redis筆記資料結構
- 資料結構與演算法學習筆記01資料結構演算法筆記
- 資料結構和演算法-學習筆記(一)資料結構演算法筆記
- 資料結構與演算法-學習筆記(二)資料結構演算法筆記
- 資料結構與演算法課程筆記(二)資料結構演算法筆記
- 02142資料結構導論複習筆記資料結構筆記
- 資料結構 第二章(學習筆記一)資料結構筆記
- EntityFramework Core筆記:表結構及資料基本操作(2)Framework筆記
- 資料結構筆記整理和思考--零碎(1)資料結構筆記
- 資料結構連結串列筆試題資料結構筆試
- 《Redis設計與實現》筆記 -- 資料結構與物件Redis筆記資料結構物件
- 從零開始JAVA資料結構學習筆記(一)Java資料結構筆記
- (戀上資料結構筆記):歸併排序(Merge Sort)資料結構筆記排序
- 資料結構與演算法分析 讀書筆記(樹)資料結構演算法筆記
- 《Python 簡明教程》讀書筆記系列四 —— 資料結構Python筆記資料結構
- 《JavaScript資料結構與演算法》筆記——第3章 棧JavaScript資料結構演算法筆記
- 《JavaScript資料結構與演算法》筆記——第6章 集合JavaScript資料結構演算法筆記