1、冒泡排序算法
//冒泡算法的实现
void puppleSort(int *array, int length)
{
if(array == NULL || length <= 0){
cout << "input Error!";
}
for(int i = 0; i < length-1; ++i){
for(int j = i+1; j < length; ++j){
if(array[i] > array[j]){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
2、快速排序算法
//快速排序算法实现
void quicksort(int *data, int left, int right)
{
if(left < right)
{
int key = data[left];
int low = left;
int high = right;
while(low < high)
{
//从右向左找第一个小于 key 的数
while(low < high && data[high] >= key)
{
high--;
}
if(low < high)
data[low++] = data[high];
//从左向右找第一个大于等于 key 的数
while(low < high && data[low] < key)
{
low++;
}
if(low < high)
data[high--] = data[low];
}
data[low] = key;
quicksort(data, left, low-1); //递归调用
quicksort(data, low+1, right);
}
}
最后对各种算法的测试
#include<iostream>
using namespace std;
#define N 1000
void puppleSort(int *array, int length);
void quicksort(int *data, int left, int right);
int main()
{
int inputLength; //数组的长度
while(cin >> inputLength){
//输入数组的数据
int array[N] = {0};
for(int i = 0; i < inputLength; ++i){
cin >> array[i];
}
//进行排序
puppleSort(array, inputLength);
quicksort(array, 0, inputLength);
for(int i =0; i < inputLength; ++i){
cout << array[i] << " ";
}
}
return 0;
}