[問題描述]
將N個(gè)關(guān)鍵字去整數(shù)的記錄進(jìn)行整序, 以使所有關(guān)鍵字為非負(fù)數(shù)的記錄排在關(guān)鍵字為負(fù)數(shù)的記錄之前,要求使用最少的附加空間,且算法的時(shí)間復(fù)雜度為O(N)
[輸入]
待排序記錄個(gè)數(shù),各關(guān)鍵字的值。
[輸出]
關(guān)鍵字從正負(fù)分開,正數(shù)在前
[存儲(chǔ)結(jié)構(gòu)]
待排序記錄順序存儲(chǔ)。
[算法的基本思想]
快速排序算法每次任取一個(gè)記錄的關(guān)鍵字為標(biāo)準(zhǔn),將其余記錄分為兩組將,N個(gè)關(guān)鍵字去整數(shù)的記錄進(jìn)行整序, 以使所有關(guān)鍵字為非負(fù)數(shù)的記錄排在關(guān)鍵字為負(fù)數(shù)的記錄之前。
#include <iostream>
using namespace std
#define MAXNUM 100//設(shè)文件的最長(zhǎng)可能長(zhǎng)度
void sort(int* keys, const int len)//排序
標(biāo)簽:
整數(shù)
記錄
上傳時(shí)間:
2014-01-13
上傳用戶:aig85