重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为资阳企业提供专业的成都网站设计、成都网站制作、外贸网站建设,资阳网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
void fun(int *num)
{
int temp;
for(int i=0; i10; ++i)
for(int j=0; j10-i-1; ++j)
{
if(num[j]num[j+1])
{
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
void main()
{
int num[10]={3,2,4,1,5,6,4,3,9,8};
fun(num);
for(int i=0; i10; ++i)
printf("%-2d",num[i]);
}
//C语言示例代码如下
#include stdio.h
#define N 10
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j; //j表示趟数,i表示第j趟两两比较的次数
int tmp; //临时变量
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
{
if(a[j] a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
void select_sort(int *array,int n)
{
int i,j,k;
int tmp;
for(i=0;in-1;i++)
{
k=i; //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
for(j=i+1;jn;j++)
{
if(array[k] array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
k=j;
}
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
if(k != i)
{
tmp=array[k];
array[k]=array[i];
array[i]=tmp;
}
}
}
int main()
{
int arr[N];
int i;
printf("输入数组元素: ");
for(i=0;iN;i++)
scanf("%d",arr[i]);
bubble_sort(arr,N); //调用冒泡排序函数
printf("输出排序后的数组元素: ");
for(i=0;iN;i++)
printf("%d ",arr[i]);
printf("\n输入数组元素: ");
for(i=0;iN;i++)
scanf("%d",arr[i]);
select_sort(arr,N); //调用选择排序函数
printf("输出排序后的数组元素: ");
for(i=0;iN;i++)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例说明
冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第2轮比较,就选出次大的数,以此类推。下面以对 3 2 4 1 进行冒泡排序说明。
1.这个算法用rand函数产生新的要排序的数据,与已有的有序数列中的数据依次比较,如果遇到比他大的数据,就从该数据开始,一直交换到末尾,达到一个插入的效果。从而形成有序的数列。
2.此外,只用rand函数并不能达到真正随机的效果。如果要实现真正随机的效果,还要配合srand函数才行。
3.具体代码如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("请输入一个种子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。