自訂一個整數類型數組,對這數組的數從小到大進行排序,不能用函數,只能用索引數組。
咋搞?
這是老師布置的作業,想了想發現技術難度不亞於阿波羅登月,當然對大牛來說小菜一碟,誰能給個思路?老師老說編程要有編程思想,思想不是書上的東西,而是經過你吸收消化長在你腦子裡,能應對問題的能力,這能力要多寫程式多思考多鍛煉才有。
可就是想不出來。都說搞技術的要有廢寢忘食癡迷於解決問題的精神,可自己就是解決不了就會被活活憋死,痛苦啊。。。
回複討論(解決方案)
參考: http://blog.csdn.net/fdipzone/article/details/8974656
參考: http://blog.csdn.net/fdipzone/article/details/8974656
看不懂啊,能稍微解釋一下嗎,版主君?
冒泡排序。
過程:
1.遍曆整個數組,每兩兩相鄰的元素進行比較,如$a[$i]>$a[$i+1]則互換位置,每次比較消除一個逆序。
2.每一次迴圈後,下次再需要迴圈的次數減少1。
$arr[$j+1]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } print_r($arr);?>
// 定義數組
$arr = array(2,3,1);
因為數組元素有3個,所以需要進行2次外迴圈
第一次內迴圈開始,因為3個元素,所以內迴圈2次
第一步
$arr[0] 與 $arr[1] 比較 2<3 所以不用操作
第二步
$arr[1] 與 $arr[2] 比較 3>1 所以$arr[1]與 $arr[2]的值交換,數組變為 array(2,1,3); 這樣得出這組數中最大是3,排在最右。
第二次迴圈開始,因為未排序的是2個元素,所以內迴圈1次
第一步
$arr[0] 與 $arr[1] 比較 2>1 所以$arr[1]與 $arr[2]的值交換,數組變為 array(1,2,3); 這樣得出這組數中最大是2,排在3的左邊。
這樣就排序成功了。
// 定義數組
$arr = array(2,3,1);
因為數組元素有3個,所以需要進行2次外迴圈
第一次內迴圈開始,因為3個元素,所以內迴圈2次
第一步
$arr[0] 與 $arr[1] 比較 2<3 所以不用操作
第二步
$arr[1] 與 $arr[2] 比較 3>1 所以$arr[1]與 $arr[2]的值交換,數組變為 array(2,1,3); 這樣得出這組數中最大是3,排在最右。
第二次迴圈開始,因為未排序的是2個元素,所以內迴圈1次
第一步
$arr[0] 與 $arr[1] 比較 2>1 所以$arr[1]與 $arr[2]的值交換,數組變為 array(1,2,3); 這樣得出這組數中最大是2,排在3的左邊。
這樣就排序成功了。
如果是十個數的數組呢?
有區別嗎?為什麼上課時不認真聽講
$arr = array(2,3,1); 這是3個數
$arr = array(2,3,1,6,7,8,4,5,9,10); 這是10個數
其他不變就可以了。
如果你是要十個數的演算法步驟,我已經給出你三個數的例子。
你其實可以這樣,先做4個數的吧,有3個數的例子,再做4個數的應該不難。然後做5,6,7,8,9,10的,慢慢一步步加上去就可以了。
老師說的話 瞎扯哈哈哈哈 。借用知乎的話很多人的努力還沒有到拼智慧的時候 你的這個題目 幾代程式員都玩膩了和四則運算一樣了。
你可以假設生活的情境 有一桶魚 大小不一 你老媽要你給它按大小排序 你會怎麼給它排序 。再簡單一點 有一副牌 只有10張 1-10 你會怎麼給它排序??(這特麼就是你大牌的時候 理牌的動作麼)
老師說的話 瞎扯哈哈哈哈 。借用知乎的話很多人的努力還沒有到拼智慧的時候 你的這個題目 幾代程式員都玩膩了和四則運算一樣了。
你可以假設生活的情境 有一桶魚 大小不一 你老媽要你給它按大小排序 你會怎麼給它排序 。再簡單一點 有一副牌 只有10張 1-10 你會怎麼給它排序??(這特麼就是你大牌的時候 理牌的動作麼)
你們怎麼這麼牛啊,感覺這種題特別繞特傷腦筋,怎樣才能達到你們這水平?或者說你們是怎麼練的?求指導,感激涕零。。。
本菜鳥現在在搞PHP培訓,大約春節前結束。到時候差不多已草盡糧絕,如果學的不精就找不到工作,那隻能流浪街頭加入丐幫了。。。幫幫我吧,怎樣成為高水平程式員?
不懂就多寫寫 冒泡排序 選擇排序這些都可以
不懂就多寫寫 冒泡排序 選擇排序這些都可以
關鍵是沒學過,比如for($i=0,$length=count($arr)-1; $i<$length; $i++),我都不知道for迴圈的初始化可以這樣寫,完全摸不著頭腦
不懂就多寫寫 冒泡排序 選擇排序這些都可以
關鍵是沒學過,比如for($i=0,$length=count($arr)-1; $i<$length; $i++),我都不知道for迴圈的初始化可以這樣寫,完全摸不著頭腦
這些基礎還是要學下的,先把基礎學好
知道for迴圈?數組值挨個迴圈遍曆排序