今天有人跟我說了一個排序題,說有50個不同的兩位整數,要求在不考慮內存的情況下用最快的方法排序。
剛開始不太明白怎麼回事,排序嘛,無非是選擇排序,冒泡排序,優先排序,歸併排序,難道還有什麼其他排序方法?
後來想了想,這道題有兩個條件:
1,兩位數,也就是0~100;
2,不考慮內存;
這樣的話用最笨的方法或許就是最快的方法
假如數組a[50]裏存放了50個不同的兩位數,b[100] 裏用來存放排好序的兩位數
int i ;
for(i = 0; i < 50; i ++ ){
b[a[i]] = a[i];
}
有時簡單的問題往往被複雜化,思維定勢真的好可怕!