zoukankan      html  css  js  c++  java
  • 改进冒泡排序

    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	",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 10
    void 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	",a[i]);
        }
        printf("
    ");
    }
    
    void swap(int *a,int *b)
    {
        *a ^= *b;
        *b ^= *a;
        *a ^= *b;
    }
  • 相关阅读:
    日志工具——slf4j
    统一建模语言——UML
    Java基础——网络编程
    Java基础——语法基础
    Java基础——NIO(二)非阻塞式网络通信与NIO2新增类库
    Java基础——NIO(一)通道与缓冲区
    动态加载script文件的两种方法
    asp.net 通用的连接数据库实例代码
    Nginx用户认证配置方法详解(域名/目录)
    js冒泡法和数组转换成字符串示例代码
  • 原文地址:https://www.cnblogs.com/yldf/p/6249910.html
Copyright © 2011-2022 走看看