zoukankan      html  css  js  c++  java
  • 两种冒泡排序方法调用的修改--一个方法同时实现两种排序

     class Program
        {
            /// <summary>
            /// 数组排序
            /// </summary>
            /// <param name="arr">数组</param>
            /// <param name="b">true为从小到大排列 false为从大到小排列</param>
            /// <returns>排序完的数组</returns>
            static int[] Method(int[] arr,bool b)//方法一,先去确定后边,从后往前排
            {//方法可以定义成无返回值,因为数组为引用类型,为传址,数组的参数值会发生变化
                for (int i = arr.Length - 1; i > 0; i--)
                {
                    for (int j = 0; j < arr.Length - 1; j++)
                    {
                        if (arr[j] > arr[j + 1] && b)//小到大的判断
                        {
                            int k = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = k;
                        }
                        if (arr[j] < arr[j + 1] && !b)//大到小的判断
                        {
                            int k = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = k;
                        }
                    }
                }
                return arr;
            }
            
            /// <summary>
            /// 数组排序方法
            /// </summary>
            /// <param name="arr">数组</param>
            /// <param name="b">true为从小到大排列 false为从大到小排列</param>
            /// <returns>排序完的数组</returns>
            static int[] Method2(int[] arr,bool b)//方法二,先确定前边数据,从前往后排
            {
                for (int i = 0; i < arr.Length - 1;i ++)
                {
                    for (int j = i ; j <= arr.Length - 1;j++)
                    {
                        if (arr[i] > arr[j] && b)
                        {
                            int k = arr[i];
                            arr[i] = arr[j];
                            arr[j] = k;
                        }
                        if (arr[i] < arr[j] && !b)
                        {
                            int k = arr[i];
                            arr[i] = arr[j];
                            arr[j] = k;
                        }
                    }
                }
                return arr;
            }
            static void Main(string[] args)
            {
                int[] arr = new int[18];
                for (int i = 0;i <= 17;i ++)
                {
                    Random rd = new Random();
                    Thread.Sleep(200);
                    arr[i] = rd.Next(100);
                }
                foreach (int i in arr)
                    Console.Write(i + " ");
                Console.Write("
    ");
                //利用方法一输出结果
                Console.WriteLine ("方法一输出从小到大:");
                arr = Method(arr,true);
                foreach (int i in arr)
                    Console.Write(i + " ");
                Console.WriteLine("
    方法一输出从大到小:");
                arr = Method(arr, false);
                foreach (int i in arr)
                    Console.Write(i + " ");
                //利用方法二输出结果
                Console.WriteLine("
    方法二输出从小到大:");
                arr = Method2(arr,true);
                foreach (int i in arr)
                    Console.Write(i + " ");
                Console.WriteLine("
    方法二输出从大到小:");
                arr = Method2(arr, false);
                foreach (int i in arr)
                    Console.Write(i + " ");
                Console.ReadLine();
            }
        }
    
  • 相关阅读:
    循环逗号分割数组!
    只是想好好学习一下!
    html元素水平垂直居中
    闭包知识点--笔记
    20160314
    从零开始做运维-零
    Nginx 和 CodeIgniter
    安装PIL库
    init
    NutUI3 多端实践之路
  • 原文地址:https://www.cnblogs.com/whytohow/p/4726429.html
Copyright © 2011-2022 走看看