改进冒泡排序

来源:互联网 发布:sqlserver 删除表约束 编辑:程序博客网 时间:2024/06/16 02:37

Java版本

/*************************************************************************    > File Name: BubbleSort.java    > Author: lxm    > Created Time: 2016年04月27日 星期三 19时24分50秒 ************************************************************************/public class BubbleSort{    public static final int N = 10;    public static void main(String[] args)    {        int[] a = {6,1,2,7,9,3,4,5,10,8};        bubbleSort(a);        printArray(a);    }    public static void printArray(int[] a)    {        for(int item : a)        {            System.out.printf("%d\t",item);        }        System.out.println();    }    public static void bubbleSort(int[] a)    {        int len = a.length;        boolean flag = true;        for(int i=0;i<len-1 && flag;++i)        {            flag = false;            for(int j=0;j<len-i-1;++j)            {                if(a[j]>a[j+1])                {                    swap(a,j,j+1);                    flag = true;                }            }        }    }    public static void swap(int[] a,int m, int n)    {        a[m] ^= a[n];        a[n] ^= a[m];        a[m] ^= a[n];    }}

C版本

/*************************************************************************    > File Name: bubbleSort.c    > Author: lxm    > Created Time: 2016年04月27日 星期三 19时10分36秒 ************************************************************************/#include<stdio.h>#define N 10void bubbleSort(int* a, int n);void printArray(int* a, int n);void swap(int *a,int *b);int main(void){    int a[] = {6,1,2,7,9,3,4,5,10,8};    bubbleSort(a,N);    printArray(a,N);}void bubbleSort(int* a, int n){    int i,j;    int flag = 1;    for(i=0;flag==1 && i<n-1;i++)    {        flag = 0;        for(j=0;j<n-1-i;++j)        {            if(a[j]>a[j+1])            {                swap(&a[j],&a[j+1]);                flag = 1;            }        }    }}void printArray(int* a, int n){    int i;    for(i=0;i<n;++i)    {        printf("%d\t",a[i]);    }    printf("\n");}void swap(int *a,int *b){    *a ^= *b;    *b ^= *a;    *a ^= *b;}
0 0
原创粉丝点击