写c语言的冒泡排序和选择排序
时间: 2023-03-27 11:00:47 浏览: 67
冒泡排序和选择排序都是常见的排序算法,它们都属于简单排序算法。
冒泡排序的基本思想是:比较相邻的元素。如果第一个比第二个大,就交换它们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素就是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
选择排序的基本思想是:首先在未排序的数列中找到最小元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
下面是 C 语言实现冒泡排序和选择排序的代码:
冒泡排序:
void bubble_sort(int arr[], int len)
{
int i, j, temp;
for (i = ; i < len - 1; i++)
{
for (j = ; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
选择排序:
void selection_sort(int arr[], int len)
{
int i, j, min_index, temp;
for (i = ; i < len - 1; i++)
{
min_index = i;
for (j = i + 1; j < len; j++)
{
if (arr[j] < arr[min_index])
{
min_index = j;
}
}
if (min_index != i)
{
temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
}