冒泡排序——算法

Posted 流星小子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序——算法相关的知识,希望对你有一定的参考价值。

计算机经典算法 ——冒泡排序(降序排序)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace SortTest
 7 {
 8     class Program
 9     {
10         /*
11          * 降序排列
12          */
13         static void Sort(int[] iNum)
14         {
15             for (int i = 0; i < iNum.Length;i++ )
16             {
17                 for (int j=i+1;j<iNum.Length;j++)
18                 {
19                     int temp =0;
20                     if (iNum[i]<iNum[j])
21                     {
22                         temp = iNum[i];
23                         iNum[i] = iNum[j];
24                         iNum[j] = temp;
25                     }
26                 }
27             }
28         }
29         static void PrintNumber(int[] iNums)
30         {
31             Console.Write("数组的顺序: ");
32             foreach (var iNum in iNums)
33             {
34                 Console.Write(iNum+ " ");
35             }
36             Console.WriteLine();
37         }
38         static void Main(string[] args)
39         {
40             int[] iNumber = { 9, 6, 7, 8};
41             PrintNumber(iNumber);
42             Sort(iNumber);
43             PrintNumber(iNumber);
44             Console.ReadKey();
45         }
46     }
47 }

 2.冒泡排序(升序排序)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AscendingSort
{
    class Program
    {
        /************************************************************************/
        /* 升序排列                                                             */
        /************************************************************************/
        static void AscSort(int[] iNum)
        {
            for (int i = 0; i < iNum.Length;i++ )
            {
                for (int j = iNum.Length - 1; j > i; j--)
                {
                    if (iNum[i]>iNum[j])
                    {
                        int temp = 0;
                        temp = iNum[i];
                        iNum[i] = iNum[j];
                        iNum[j] = temp;
                    }
                }
            }
        }
        static void PrintNumber(int[] iNums)
        {
            Console.Write("数组的顺序: ");
            foreach (var iNum in iNums)
            {
                Console.Write(iNum + " ");
            }
            Console.WriteLine();
        }
        static void Main(string[] args)
        {
            int[] iNumber = { 9, 6, 7, 8 };
            PrintNumber(iNumber);
            AscSort(iNumber);
            PrintNumber(iNumber);
            Console.ReadKey();
        }
    }
}

 另一种升序排序写法

/// <summary>
        /// 升序排列
        /// </summary>
        /// <param name="iNum"></param>
        static void Bubble(int[] iNum)
        {
            int temp = 0;
            for (int i = iNum.Length; i > 0; i--)
            {
                for (int j = 0; j < i - 1; j++)
                {
                    if (iNum[j] > iNum[j + 1])
                    {
                        temp = iNum[j];
                        iNum[j] = iNum[j + 1];
                        iNum[j + 1] = temp;
                    }
                }
            }
        }

 

以上是关于冒泡排序——算法的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法_冒泡排序(算法设计与C代码实现)

冒泡排序算法原理和代码实现,就是这么简单。。。

三大基础排序算法(冒泡排序,选择排序,插入排序)

交换排序(冒泡排序快速排序的算法思想及代码实现)

算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度