//冒泡排序其实并没有多大的特殊的价值,效率很低,其基本思想是第一个元素和第二个元素比较,如果第一个元素大,那么两个元素交换,然后第二个与第三个元素比较,较大的元素依次向后移动,最后找出最大的,依次找出第二大的,最后找出最小的;也可以反过来求解,先求最小的,从小到大的顺序;时间复杂度为O(n2);
#include <stdio.h>
#include <stdlib.h>
void bubble(int arrays[],int number);
void swap(int *a,int *b);
int main()
{
int i,count;
printf("please input the number you want to sort:\n");
scanf("%d",&count);
int array[count];
printf("please input the numbers:\n");
for(i=0;i<count;i++)
scanf("%d",&array[i]);
printf("befor bubble sort:\n");
for(i=0;i<count;i++)
printf("%d ",array[i]);
printf("\n");
bubble(array,count);
printf("after the sort:\n");
for(i=0; i<count; i++)
printf("%d ",array[i]);
printf("\n");
return 0;
}
void bubble(int arrays[],int number)
{
int i,j;
for(i=1;i<number;i++)
for(j=0;j<number-i;j++)
if(arrays[j]>arrays[j+1])
swap(&arrays[j],&arrays[j+1]);
/* {
int temp=arrays[j];
arrays[j]=arrays[j+1];
arrays[j+1]=temp;
}*/
for(i=0;i<number;i++)
printf("%d ",arrays[i]);
printf("\n");
}
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
#include <iostream>
using namespace std;
int main()
{
int number;
cout<<"请输入你的数组的个数:"<<endl;
cin>>number;
int a[number];
int temp;
cout<<"请输入你的数据: "<<endl;
for(int i=0;i<number;i++)
{
cin>>a[i];
}
cout<<"请确认你的数据:"<<endl;
for(int j=0;j<number;j++)
{
cout<<a[j]<<" ";
}
cout<<endl;
cout<<endl;
for(int m=1;m<number;m++)
{
for(int k=0;k<10-m;k++)
{
if(a[k]>a[k+1])
{
temp=a[k+1];
a[k+1]=a[k];
a[k]=temp;
}
}
for(int i=0;i<number;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;cout<<endl;
}
cout<<"经过排序后的结果是:"<<endl;
for(int n=0;n<number;n++)
cout<<a[n]<<" ";
return 0;
}