4.26 1.8

发布时间 2023-04-26 20:08:41作者: 席

一、问题描述

n个整数进行升序排列

二、分析

冒泡排序:从表头开始一 一对比互换,第一个元素比较完以后,第二个元素从第三个元素开始比较互换。

假设有n个元素,最坏的情况下需要比较的次数为:[(n-1)+(n-2)+······+2+1]

一个数组a,数组下标用j表示,数组元素即为a[j]、a[j+1]、a[j-1]等。

三、代码

#include<iostream>
using namespace std;
#define N 10
int main()
{
int i,j,t,count=0;
int a[N];
cout<<"请为数组元素赋值:"<<endl;
for(i=0;i<N;i++)
cin>>a[i];
for(i=1;i<=N-1;i++)
for(j=0;j<N-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
cout<<"元素变换后为:"<<endl;
for(i=0;i<N;i++)
{count++;
cout<<a[i]<<" ";
if(count%5==0)
cout<<endl;
}
cout<<endl;
}

四、结果