zoukankan      html  css  js  c++  java
  • C#实现整数冒泡排序、选择排序

            首先定义排序过程中要用到的Swap方法,用于交换两个整数的值:

            /// <summary>
            /// 交换两个整数的值
            /// </summary>
            /// <param name="aa">数1</param>
            /// <param name="bb">数2</param>
            private static void Swap(ref int aa,ref int bb)
            {
                int temp;
                temp = bb;
                bb = aa;
                aa = temp;
            }

       // 冒泡排序
       class Program
        {
            static void Main(string[] args)
            {
                int[] a={1,2,5,7,9,8,10,6,4,3};
                BubbleSort(a);
                for (int i = 0; i < a.Length; i++)
                    Console.Write(a[i] + " ");
                Console.ReadKey();
            }
            /// <summary>
            /// 冒泡排序
            /// </summary>
            /// <param name="a">传入要排序的数组</param>
            private static void BubbleSort(int[] a)
            {
                for (int i = 0; i < a.Length - 1; i++)
                {
                    for (int j = 0; j < a.Length - i - 1; j++)
                    {
                        if (a[j] < a[j + 1])//降序排列
                        {
                            Swap(ref a[j], ref a[j + 1]);
                        }
                    }
                }
            }
       }

     //选择排序
     class Program
     {
            static void Main(string[] args)
            {
                int[] a = { 1, 2,  4, 3,6,5,7,9,8 };
                SelectionSort(a);
                for (int i = 0; i < a.Length; i++)
                    Console.Write(a[i] + " ");
                Console.ReadKey();
            }
            /// <summary>
            /// 选择排序
            /// </summary>
            /// <param name="a">传入要排序的数组</param>
            private static void SelectionSort(int[] a)
            {
                int k;
                for (int i = 0; i < a.Length - 1; i++)
                {
                    k = i;
                    for (int j = i+1; j < a.Length ; j++)
                    {
                        if (a[j] < a[k])//升序排列
                        {
                            k = j;
                          
                        }
                    }
                    if(k!=i)
                        Swap(ref a[i], ref a[k]);
                }
            }
         }

  • 相关阅读:
    python实现二分查找算法例子代码
    Python实现计算圆周率π的值到任意位的方法示例
    什么是TWS耳机
    [置顶] 单例模式lua实现
    推荐五星级C语言学习网站
    poj2689 Prime Distance 有难度 埃拉托斯尼斯筛法的运用
    局域网
    pager-taglib分页处理的使用
    创建ListView的基本步骤
    求最大连续子数列和(只扫描一次数列)
  • 原文地址:https://www.cnblogs.com/zhouhb/p/1955280.html
Copyright © 2011-2022 走看看