冒泡排序

来源:互联网 发布:淘宝如何退保证金 编辑:程序博客网 时间:2024/05/18 02:25
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;//冒泡排序算法说明//冒泡排序也被称为下沉排序,是一个简单的排序算法,通过多次重复比较每对相邻的元素,并按规定的顺序交换他们,最终把数列进行排好序。一直重复下去,直到结束。该算法得名于较小元素“气泡”会“浮到”列表顶部。由于只使用了比较操作,所以这是一个比较排序。//冒泡排序算法的运作如下://比较相邻的元素。如果第一个比第二个大,就交换他们两个。//对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。//针对所有的元素重复以上的步骤,除了最后一个。//持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。//由于它的简洁,冒泡排序通常被用来对于程序设计入门的学生介绍算法的概念。但同样简单的插入排序比冒泡排序性能更好,所以有些人认为不需要再教冒泡排序了。namespace 冒泡排序{    class Program    {        static void Main(string[] args)        {            List<int> arrayToSort = new List<int>() { 12, 4654, 789, 1, 456, 174, 6, 54, 9 };            //2、针对所有的元素重复以上的步骤,除了最后一个。所有这里要-1            int n = arrayToSort.Count - 1;            //i表示数组的索引            for (int i = 0; i < n; i++)            {                //从最后的一个开始                for (int j = n; j > i; j--)                {                    //IComparable不太明白是干嘛的,回头可以查查                    //如果前面一个数比后面一个数大就交换他们的位置                    if (((IComparable)arrayToSort[j - 1]).CompareTo(arrayToSort[j]) > 0)                    {                        //1、比较相邻的元素,如果第一个比第二个大,就交换他们两个。                        int temp = arrayToSort[j - 1];                        arrayToSort[j - 1] = arrayToSort[j];                        arrayToSort[j] = temp;                    }                }            }            #region 遍历输出数组            for (int i = 0; i < arrayToSort.Count; i++)            {                Console.Write(arrayToSort[i].ToString() + ",");            }            Console.ReadKey();             #endregion        }    }}

学习来源:http://blog.jobbole.com/72850/

0 0