对一组无序数进行递增排序.(使用冒泡排序和快速排序, 比较它们的排序用时)
1个回答
展开全部
// 冒泡排序
void bubbleSort (int data[], size_t size) {
for (size_t i = 0; i < size - 1; i++) {
bool ordered = true;
for (size_t j = 0; j < size - 1 - i; j++)
if (data[j] > data[j+1]) {
swap (data[j], data[j+1]);
ordered = false;
}
if (ordered)
break;
}
}
void quickSort (int data[], size_t left, size_t right){
size_t p = (left + right) / 2;
int pivot = data[p];
for (size_t i = left, j = right; i < j;) {
while (! (i >= p || pivot < data[i]))
i++;
if (i < p) {
data[p] = data[i];
p = i;
}
while (! (j <= p || data[j] < pivot))
j--;
if (j > p) {
data[p] = data[j];
p = j;
}
}
data[p] = pivot;
if (p - left > 1)
quickSort (data, left, p - 1);
if (right - p > 1)
quickSort (data, p + 1, right);
}
更多追问追答
追问
你是用的c++编的吗??
追答
c和C++都是通用的啊,对于这两段代码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询