冒泡算法
void bubble_sort(int *arr, int *len)
{/*冒泡排序*/
if (len == arr)return;
int *_clen = len;
int *_pl, *_pr;//指针1 指针2
int _c;
while (1)
{
/*移动指针到数组头*/
_pl = arr;
_pr = arr + 1;
do {
if (*_pl > *_pr)
{
/*交换数据*/
_c = *_pl;
*_pl = *_pr;
*_pr = _c;
}
_pl++;
_pr++;
} while (_pr < _clen);
_clen--;
if (_clen == arr)break;//排序完成 退出循环
}
}
快速排序
void quick_sort(int *arr, int *len)
{/*快速排序*/
if (len == arr)return;
int *_pl, *_pr, _j;
int _c;
_j = *arr;//设置基准值
//读入指针
_pl = arr;
_pr = len;
while (1)
{
//左往右 找比 _j 大的值
while (*++_pl < _j)
if (_pl==len)break;
//右往左 找比 _j 小的值
while (*--_pr > _j)
if (_pr == arr)break;
if (_pl >= _pr)break;
/*交换数据*/
_c = *_pl;
*_pl = *_pr;
*_pr = _c;
}
//交换基准值
_c = *arr;
*arr = *_pr;
*_pr = _c;
//递归进行排序
quick_sort(arr, _pr);
quick_sort(++_pr, len);
}