码迷,mamicode.com
首页 > 编程语言 > 详细

几种常见的排序算法

时间:2014-12-03 13:44:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   sp   for   on   数据   

1冒泡排序法

  例如 数组 3,9,27,6,18,12,21,15

       第一轮:

               排序选择第一位数作为比较对象,依次比较后面的数,如果比3小就交换

      3,9,27,6,18,12,21,15   

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

       第二轮:选择第二位数作为比较对象,依次和后面的数比较

      3,9,27,6,18,12,21,15

      3,9,27,6,18,12,21,15

      3,6,27,9,18,12,21,15      9比6大则交换

      3,6,27,9,18,12,21,15

      3,6,27,9,18,12,21,15

      3,6,27,9,18,12,21,15

      3,6,27,9,18,12,21,15

  第三轮:选择第三位数作为比较对象,依次和后面的数比较

      3,6,27,9,18,12,21,15   27比9大则交换

      3,6,9,27,18,12,21,15

      3,6,9,27,18,12,21,15

      3,6,9,27,18,12,21,15

      3,6,9,27,18,12,21,15

      3,6,9,27,18,12,21,15

  第四轮:选择第四位数作为比较对象,依次和后面的数比较

      3,6,9,27,18,12,21,15    27比18大则交换

      3,6,9,18,27,12,21,15    18比12大则交换

      3,6,9,12,27,18,21,15

      3,6,9,12,27,18,21,15

  第五轮:选择第五位数作为比较对象,依次和后面的数比较

      3,6,9,12,27,18,21,15    27比18大则交换

      3,6,9,12,18,27,21,15

      3,6,9,12,18,27,21,15   18比15大则交换

      3,6,9,12,15,27,21,18

  第六轮:选择第六位数作为比较对象,依次和后面的数比较

      3,6,9,12,15,27,21,18   27比21大则交换、

      3,6,9,12,15,21,27,18   21比18大则交换

      3,6,9,12,15,18,27,21

  第七轮:选择第七位数作为比较对象,依次和后面的数比较

      3,6,9,12,15,18,27,21   27比21大则交换

      3,6,9,12,15,18,21,27

以下是代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace Research
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int[] arr = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 };  //定义一个一维数组,并赋值
14             foreach(int m in arr)           //循环遍历定义的一维数组,并输出其中的元素
15             Console.Write(m + " ");
16             Console.WriteLine();
17             int j, temp;   //定义两个int类型的变量,分别用来表示数组下表和存储新的数组元素
18             for(int i=0;i<arr.Length-1;i++)   //根据数据下标的值遍历数组元素
19             { j = i + 1;
20               id:                           //定义一个标识,以便从这里开始执行语句
21                 if (arr[i] > arr[j])        //判断前后两个数的大小
22                 {
23                     temp = arr[i];           //将比较后大的元素赋值给定义的int变量
24                     arr[i] = arr[j];         //将后一个元素的值赋值给前一个元素
25                     arr[j] = temp;           //将int变量中存储的元素值赋值给后一个元素
26                     goto id;                 //返回标识,继续判断后面的元素
27                 }
28                 else
29                     if(j<arr.Length-1)       //判断是否执行到最后一个元素
30                     {
31                         j++;                   //如果没有,则再往后判断
32                         goto id;                   //返回标识,继续判断后面的元素
33                     }
34             }
35             foreach (int n in arr)              //循环遍历排序后的数组元素并输出
36              Console.Write(n + " ");
37             Console.WriteLine();
38             Console.ReadLine();
39             
40 
41              
42         }
43     }
44 }

 

几种常见的排序算法

标签:style   blog   io   ar   color   sp   for   on   数据   

原文地址:http://www.cnblogs.com/MiyaQian/p/4139666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!