简单算法学习笔记二

来源:互联网 发布:linux下php言编程ide 编辑:程序博客网 时间:2024/06/06 02:05

(一)冒泡排序(升序)
对n个整数进行排序。
算法思想:
(1)从下标为0的元素开始,对两两相邻的元素进行比较,如果前一个元素大于后一个元素,则交换这两个元素的值,在n-1次比较后,这组整数中最大的元素就被移动到最后(下标为n-1);
(2)对下标为0到下标为n-2的n-1个元素重复(1)中的比较和交换过程,最终第二大的元素被移动到下标为n-2的单元;
(3)对剩下的n-2个数重复上面的比较和交换操作,在n-1轮操作后,n个整数升序排序完成。
示例代码:

#include <stdio.h>void BubbleSort(int a[],int n);void main(){    int x[]={5,7,0,8,1,4,9};    BuubleSort(x,7);    return ;}void BubbleSort(int a[],int n){    int i,j,k,t;    for(i-0;i<n-1;i++)    {        for(j=0;j<n-1-i;j++)            if(a[j]>a[j+1])            {                t=a[j];                a[j]=a[j+1];                a[j+1]=t;            }        for(k=0;k<n;k++)            printf("%d",a[k]);        printf("\n");    }}
1 0
原创粉丝点击