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();
            }
        }
    
  • 相关阅读:
    IPC机制key值的各位组成
    ctrl+c,ctrl+d,ctrl+z在linux中意义
    Linux x86_64与i386区别之 —— 内存寻址
    readdir_r()读取目录内容
    memmove和memcpy
    sscanf的应用
    获取CPU频率
    盘点十个超级实用的 JS 特性
    Java 类在 Tomcat 中是如何加载的?
    Java 类在 Tomcat 中是如何加载的?
  • 原文地址:https://www.cnblogs.com/whytohow/p/4726429.html
Copyright © 2011-2022 走看看