在这个 C 语言程序中,你将学习冒泡排序算法是如何工作的。这个 C 语言程序使用冒泡排序将元素按正确的顺序排列。我们可以称冒泡排序为“比较排序”,因为每次遍历都会检查相邻元素对,并通过交换元素使其按正确的顺序排列。 这个过程重复进行,直到所有元素都按正确的顺序排列。
例如,'5, 1, 6, 7, 2' 是要排序的数字,
现在进行第二次遍历。并重复第一次遍历中的过程。
冒泡排序的最佳情况是针对已经排序的列表。
冒泡排序的最坏情况复杂度是 o(n**2),其中 'n' 是列表中元素的数量。
在这个 C 语言程序中,在我们获取用户输入需要排序的项数后,我们使用 `for` 循环将列表元素从用户那里添加到数组中,然后使用另一个 `for` 循环打印用户输入的列表。
现在,使用两个嵌套的“`for` 循环”将每个元素与列表中相邻的元素进行比较。如果第二个元素小于第一个元素,我们必须使用带有 `temp` 变量的交换方法来交换元素。
我们对每个元素执行此操作,直到数组完全排序。我们从外层 for 循环中取出每个元素,并将其与内层 for 循环中的所有其他元素进行比较,以使该元素在第一次遍历中处于正确的位置。现在我们在第二次遍历中从外层循环中取出下一个元素,依此类推。最后,我们打印**排序后的列表**。
步骤 1: 将头文件库包含到 C 语言程序中,以使用该库中的内置函数。
步骤 2: 初始化程序中使用的变量和用于存储值的数组。
步骤 3: 使用 `printf` 和 `scanf` 函数接受用户所需的元素数量。并将其存储在一个变量中。
步骤 4: 使用 `for` 循环,通过 `scanf` 接受用户输入的元素到数组中。
步骤 5: 使用 `for` 循环,通过 `printf` 打印数组。
步骤 6: 打开嵌套的外层 For 循环,从零到数组中的项数,以检查每个元素。
步骤 7: 打开内层 For 循环,从零到**项数 - 外层循环中的数字 - 1**,以将外层循环中的每个元素与数组中未排序的元素进行比较。
步骤 8: 使用“`if`”条件检查比较的元素是否大于被比较的元素。
步骤 9: 如果是这样,使用带有临时变量的 `Swap` 技术交换元素。
步骤 10: 在 C 语言编程中使用 `printf` 和 `for` 循环打印排序后的数组。
#include <stdio.h>
#define MAXSIZE 10
void main()
{
int array[MAXSIZE]; /* declares array and variables */
int i, j, N, temp;
printf("Enter the value of N\n");
scanf("%d", & N);
printf("Enter the elements one by one\n"); /* accept and enter the list elements into a array */
for (i = 0; i < N; i++)
{
scanf("%d", & array[I]);
}
printf("Input array is...\n");
for (i = 0; i < N; i++)
{
printf("%d\n", array[I]); /* prints the sorted list */
}
for (i = 0 ; i < N - 1; i++)
{
for (j = 0 ; j < N - i - 1; j++)
{
if (array[j] > array[j+1]) /* comparing the elements using nested for loop */
{
temp = array[j];
array[j] = array[j+1]; /* swapping the elements using temp */
array[j+1] = temp;
}
}
}
printf("Sorted array is...\n");
for (i = 0; i < N; i++)
{
printf("%d\n", array[I]); /* prints the sorted list */
}
}
Enter the value of N 5 Enter the elements one by one 390 234 111 876 345 Input array is 390 234 111 876 345 Sorted array is... 111 234 345 390 876