今天遇到了個實現陣列的奇偶排序的問題,與大家分享下解決思路。
思路1:建立新的陣列對所求陣列進行遍歷,技術放在一起偶數放在一起,再用穿件陣列中的內容替換到所求陣列中,**如下:
#define len 10
#include#includeint main()
;//陣列的初始化
int odd[len] = ;//用來儲存奇數
int dou[len] = ;//用來儲存偶數
int j = 0;
int k = 0;
for (int i = 0; i < len; i++)
else
}for (int i = 0; i < len; i++)//對目標陣列的更改
else
}for (int i = 0; i < len; i++)
system("pause");
return 0;
}
思路2:如果不允許建立新的空間變數怎麼辦呢,我們可以用氣泡排序的思想來解決這個問題,如果這個數是奇數,我們就把它冒泡的陣列頂端,依次冒泡下去,我們就能得到答案,實現**如下:
#includeint* doubleline(int *a, int size)//氣泡排序實現奇偶排序所封裝的函式}}
return a;
}int main()//除錯過程
;int size = sizeof(arr) / sizeof(int);//求取陣列大小
int *p = doubleline(arr, size);
for (int i = 0; i < size; i++)
system("pause");
return 0;
}
個人認為氣泡排序雖然節省了空間,但是如果陣列特別大的時候這樣做的效率是極其低下的,希望運用的時候斟酌下。
如有什麼不足之處,希望批評指正。
本文出自 「pawnsir的it之路」 部落格,請務必保留此出處
c語言實現陣列的排序
本文章只對選擇排序和氣泡排序進行介紹 選擇排序實際上是從0到length 1,選擇某個元素與其他的元素進行大小比較,如果大於就交換,其他情況不做操作,如圖 氣泡排序實際上是先選擇某個元素,然後從最後乙個元素依次往前比較 不超過選擇的元素 如果大於就交換,否則不變,如圖 從圖可以看出排序出的數彷彿是從...
C語言實現陣列快速排序演算法
c語言實現陣列快速排序演算法 快速排序演算法,顧名思義,是迄今為止發現的速度最快的排序演算法。快速排序演算法採用分治的思想,首先在要排序的序列中選取乙個基準數 一般選取序列的第乙個,其實選取哪個是無關緊要的 將序列分成兩部分,其中基準數的左邊全是小於基準數的數,基準數右邊是大於或者等於基準數的數。這...
排序(C語言實現)
1.基本原則 比較兩兩相鄰記錄的關鍵字,使不滿足排序要求的記錄交換位置,直到n 1輪迴圈結束 2.操作順序 從小到大為例 1 從頭開始,比較 arr i 和 arr i 1 如果第二個比第乙個小,交換 2 指標向後移動,i i 1,再次比較 arr i 和 arr i 1 判斷是否需要交換 3 迴圈...