-
很簡單:只需在 stl 中使用 std::sort,這是乙個改進的快速排水,不僅高效,而且在快速行分支惡化後自動選擇其他排序策略。
首先包括
int array = ;
然後像這樣傳入陣列。
std::sort(array, array+6);
對於任何原生支援大小比較的型別(例如 int 和 double),對陣列中的第乙個和第六個元素進行排序都非常快。
樓上的 qsort 已經過時,不推薦在 C++ 中使用。
-
快速排空原有功能。
void qsort(void * array,int nelem,int width,int (*fcmp)(const void *,const void *)
引數有:陣列名稱、陣列中元素數、單個元素所屬資料型別的長度(位元組數)和比較函式。
如果是整數陣列排序,比較函式可以這樣寫。
int comp(const void * a,const void *b)
return *(int *)a-*(int * b;
這個比較函式可以寫在main函式的前面,而不用在原來的那邊移動,呼叫函式的時候可以這樣寫:
qsort(a,100,sizeof(int),comp);
它是對陣列 a[100] 進行排序。
-
快速排序是對氣泡排序的改進。 作者:C a.
r.霍爾於 1962 年推出。 其基本思想是:
通過一次排序將待排序的資料分成兩個獨立的部分,一部分的所有資料都小於另一部分的所有資料,然後按照這種方法快速地將兩部分資料分別排序,整個排序過程可以遞迴進行,從而實現整個資料成為有序序列。
-
使用氣泡排序方法進行程式設計:
說明:1第乙個 for 迴圈:使用陣列迴圈輸入 4 個變數。
2.Second for 迴圈:這個迴圈意味著如果 a[0]>a[1],則交換兩個變數的值,並使用迴圈依次比較它們。
需要注意的是,i<3,因為有i+1,i的最大值為2,表示爐渣為i+1,最大值為3。
3.第三個for迴圈:利用迴圈輸出靜悄悄排序的渣陣列,並在每個輸出中增加乙個空格,以便於區分。
-
轉向第一條記錄是:
解決方法: 1.取46為截止值,通過截止值將陣列分為左右兩部分。
2.從後到前,將大於或等於截止值的資料集中在陣列的右側,將小於截止值的資料集中在陣列的左側。 在這種情況下,左側部分中的所有元素都小於或等於截止值,而右側部分中的所有元素都大於或等於截止值。
3.然後,可以對左右兩側的資料進行獨立排序。 對於左側的陣列資料,可以取乙個分界值,將資料部分分為左、右兩部分,將較小的值放在左邊,較大的值放在右邊。 右邊的陣列資料可以類似地處理。
4.重複上述過程,可以看出這是乙個遞迴定義。 遞迴排序左側部分後,遞迴排序右側部分。 當對左右部分的資料進行排序時,將對整個陣列進行排序。
-
這個“法律”到底是什麼? 我可以總結三點:
奇數項和偶數項都是有序整數;
奇數項和偶數項都是有序的連續整數;
奇數項和偶數項都是有序連續整數,所有奇數項都小於偶數項;
題主所說的“定律”是什麼?
-
面試最基本的排序演算法。