c语言一维数组冒泡排序怎么输出中间过程
c语言一维数组冒泡排序怎么输出中间过程?
#include
using namespace std
void bubbleSort(int *arr,int len)
{
for (int i = 0 i < len - 1 i++)
{
for (int j = 0 j < len - i - 1 j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
for (int k = 0 k < len k++)
{
if (k == 0)
{
cout << arr[k]
}
else
{
cout <<" "<< arr[k]
}
}
cout << endl
}
}
int main()
{
int len = 0
cin >> len
int *arr = new int[len]
if (len == 1)
{
cin >> arr[0]
cout << arr[0]
}
else
{
for (int i = 0 i < len i++)
{
cin >> arr[i]
}
bubbleSort(arr, len)
}
}
要输出冒泡排序的中间过程,可以在每次交换元素的时候打印数组的当前状态。冒泡排序的核心是通过比较相邻元素的大小来进行交换,每一轮都会将最大的元素冒泡到数组的末尾。
在每一轮比较和交换之后,可以使用循环遍历数组并打印每个元素,以展示当前的排序状态。这样就可以观察到排序过程中元素的逐渐有序化的变化。