2021-06-26

C#语言——常用的排序算法



一、冒泡排序

冒泡排序(Bubble Sort):是将一个数组中的元素按照从小到大或者从大到小的顺序进行排列,而冒泡排序主要就是去看有关数组和for循环的理解。

二、冒泡排序代码

代码如下(示例):

class Program
    {
        static void Main(string[] args)
        {
            int[] arrary = { 66, 99, 36, 445, 65, 12, 1, 8, 6, 92 };
            BubbleSort(arrary);
            foreach (var item in arrary)
            {
                Console.WriteLine("冒泡排序:{0}", item);
            }
            Console.WriteLine();
            Console.ReadKey();
        }
        private static void BubbleSort(int[] arrary)
        {
            int temp = 0;
            for (int i = 0; i < arrary.Length - 1; i++)
            {
                for (int j = i + 1; j < arrary.Length; j++)
                {
                    if (arrary[i] < arrary[j])//小于号的时候为降序,大于号的时候为升序
                    {
                        temp = arrary[j];
                        arrary[j] = arrary[i];
                        arrary[i] = temp;
                    }
                }
            }
        }
    }

一、选择排序

选择排序(Selection Sort):首先在一个未排序的序列中找到最小或者最大的元素,然后存放在排序序列的起始位置,然后就从剩下的未排序的元素中找最小或者最大值,以此类推,直到所有元素都排序完。

二、选择排序代码

 class Program
    {
        static void Main(string[] args)
        {
            int[] arrary = { 66, 99, 36, 445, 65, 12, 1, 8, 6, 92 };
            SelectionSort(arrary);
            foreach (var item in arrary)
            {
                Console.WriteLine("选择排序:{0}", item);
            }
            Console.WriteLine();
            Console.ReadKey();
        }
        private static void SelectionSort(int[] arrary)
        {
            int temp = 0;
            for (int i = 0; i < arrary.Length - 1; i++)
            {
                int minValue = arrary[i];
                int minIndex = i;
                for (int j = i + 1; j < arrary.Length; j++)
                {
                    if (minValue < arrary[j])//大于号是升序,小于号是降序
                    {
                        minValue = arrary[j];
                        minIndex = j;
                    }
                }
                temp = arrary[i];
                arrary[i] = arrary[minIndex];
                arrary[minIndex] = temp;
            }
        }
    }

一、插入排序

插入排序(Insert Sort):首先从第一个元素开始默认排序,将下一个元素取出并与排序好的元素进行比较,如果取出的元素小于已经排序的元素,那么,已经排序的元素要向后面移一位(即插入)。重复这一操作,直到取出的元素找到新的插入的位置,并且插入。

二、插入排序代码

class Program
    {
        static void Main(string[] args)
        {
            int[] arrary = { 66, 99, 36, 445, 65, 12, 1, 8, 6, 92 };
            InsertSort(arrary);
            foreach (var item in arrary)
            {
                Console.WriteLine("插入排序:{0}", item);
            }
            Console.WriteLine();
            Console.ReadKey();
        }
        private static void InsertSort(int[] arrary)
        {
            for (int i = 1; i < arrary.Length; i++)
            {
                int InsertValue = arrary[i];
                int InsertIndex = i - 1;
                while (InsertIndex >= 0 && InsertValue < arrary[InsertIndex])//大于号为降序,小于号为升序
                {
                    arrary[InsertIndex + 1] = arrary[InsertIndex];
                    InsertIndex--;
                }
                arrary[InsertIndex + 1] = InsertValue;
            }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值