• 冒泡排序


    public class BubbleSort
        {
    
            /*
             * 冒泡排序
             *
             * 参数说明:
             *     a -- 待排序的数组
             *     n -- 数组的长度
             */
            public static void bubbleSort1(int[] a, int n)
            {
                int i, j;
    
                for (i = n - 1; i > 0; i--)
                {
                    // 将a[0...i]中最大的数据放在末尾
                    for (j = 0; j < i; j++)
                    {
    
                        if (a[j] > a[j + 1])
                        {
                            // 交换a[j]和a[j+1]
                            int tmp = a[j];
                            a[j] = a[j + 1];
                            a[j + 1] = tmp;
                        }
                    }
                }
            }
    
            /*
             * 冒泡排序(改进版)
             *
             * 参数说明:
             *     a -- 待排序的数组
             *     n -- 数组的长度
             */
            public static void bubbleSort2(int[] a, int n)
            {
                int i, j;
                int flag;                 // 标记
    
                for (i = n - 1; i > 0; i--)
                {
    
                    flag = 0;            // 初始化标记为0
                                         // 将a[0...i]中最大的数据放在末尾
                    for (j = 0; j < i; j++)
                    {
                        if (a[j] > a[j + 1])
                        {
                            // 交换a[j]和a[j+1]
                            int tmp = a[j];
                            a[j] = a[j + 1];
                            a[j + 1] = tmp;
    
                            flag = 1;    // 若发生交换,则设标记为1
                        }
                    }
    
                    if (flag == 0)
                        break;            // 若没发生交换,则说明数列已有序。
                }
            }
    
            public static void Main(String[] args)
            {
                int i;
                int[] a = { 10, 20, 30, 40, 50, 60 };
    
                Console.WriteLine("before sort:");
                for (i = 0; i < a.Length; i++)
                    Console.WriteLine("%d ", a[i]);
                Console.WriteLine("
    ");
    
                //bubbleSort1(a, a.Length);
                bubbleSort2(a, a.Length);
    
                //Console.WriteLine("after  sort:");
                //for (i = 0; i < a.Length; i++)
                //    Console.WriteLine("%d ", a[i]);
                //Console.WriteLine("
    ");
            }
        }
  • 相关阅读:
    至理明言100个经典句子
    ASP操作cookies的方法
    Recordset属性与方法
    VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
    诺基亚10个不为人知的秘密
    JavaScript的常用事件/方法/特效
    javascript常用方法
    C#操作xml
    URL重写
    数据库之间的区别
  • 原文地址:https://www.cnblogs.com/chrisghb8812/p/9351089.html
Copyright © 2020-2023  润新知