關於使用c 完成快速排序演算法

2021-10-02 14:52:31 字數 1248 閱讀 8805

/*

輸入一串字元,可以是多行,最後以'#'字元結尾

輸出的結果是將單詞按照ascii公升序輸出的

*/#include#includeusing std::cout;

using std::cin;

using std::endl;

using std::string;

void swap(string* pstr, int first, int second);

void sort(string* pstr, int start, int end);

int count_words(const string& text, const string& separators);

void extract_words(string* pstr, const string& text, const string& separators);

void show_words(string* pstr, int count);

int main()

string** pwords = new string * [word_count];

extract_words(pwords, text, separators);

sort(pwords, 0, word_count - 1);

show_words(pwords, word_count);

return 0;

}//計算輸入的字串中,一共包含多少個單詞

int count_words(const string& text, const string& separators)

return count;

}//將單詞分割出來,放入string陣列中

void extract_words(string* pstr, const string& text, const string& separators)

}//快速排序演算法

void sort(string* pstr, int start, int end)

//交換兩個位置的資料

void swap(string* pstr, int first, int second)

void show_words(string* pstr, int count)

** 其實,快速排序演算法的核心,就是到分解為兩兩為一組的小事件,而這每兩兩一組之間又都滿足公升序或者降序規則,最後,將兩兩一組的小事件比較大小,就完成了排序**

排序演算法 快速排序 C

單向掃瞄就地重排 int partitation 1way int array,int nidxleft,int nidxright return nidxsmall 雙向掃瞄就地重排 int partitation 2way int array,int nidxleft,int nidxright...

快速排序演算法C

快速排序演算法 c 實現 評注版 經常看到有人在網上發快速排序的演算法,通常情況下這些人是在準備找工作,或者看 演算法導論 這本書,而在他們發布的 通常是差不多的版本,估計也是網上 copy 一下,自己改改,跑過了就算了,但是通常這樣玩根本沒有太大作用,如果到一家公司,給你一台不能上網的筆記本,20...

快速排序演算法(C)

sort快排函式的基本版,效率n logn,快排的完全版就是在遞迴之中夾雜對序列的預判斷,最優的選擇排序方法,快速排序演算法只是其中之一。簡單的說明一下快速排序的思想,對於乙個數列,首先選擇乙個基數 x 進行第一次排序,把比x 小的放在x左邊,大的放右邊 預設從小到大 例如 8 4 5 7 6 9 ...