/* 冒泡排序算法 */
#include <stdio.h>
void bubble(int a[], int len)
{
for(int i = 0; i < len-1; ++i) //外层循环控制排序趟数
{
for(int j = 0; j < len-1-i; ++j)//内层循环控制每一趟排序
{
if(a[j] > a[j+1])
{
a[j] ^= a[j+1];
a[j+1] ^= a[j];
a[j] ^= a[j+1];
}
}
}
}
/* 选择排序算法 */
void select(int a[], int len)
{
for(int i = 0; i < len -1; ++i)
{
int min = i;
for(int j = i+1; j < len; ++j)
{
if(a[j] < a[min])
{
a[min] ^= a[j];
a[j] ^= a[min];
a[min] ^= a[j];
}
}
}
}
/* 插入排序算法 */
void insert(int a[], int len)
{
for(int i = 1; i < len; i++)
{
for(int j = i; j > 0; j--)
{
if(a[j] < a[j-1])
{
a[j] ^= a[j-1];
a[j-1] ^= a[j];
a[j] ^= a[j-1];
}
}
}
}
/* 快速排序算法 */
void quick(int a[], int left, int right)
{
int i = left, j = right, tmp = a[left];
if(left < right)
{
while(i < j)
{
while(j > i && a[j] >tmp)
j--;
if(j > i)
a[i++] = a[j];
while(i < j && a[i] <tmp)
i++;
if(i < j)
a[j--] = a[i];
}
a[i] = tmp;
quick(a, left, j-1);
quick(a, i+1, right);
}
}
常用排序算法
于 2021-09-17 21:44:50 首次发布