算法 - 选择排序(C#)
2009-10-10 14:01
316 查看
// -------------------------------------------------------------------------------------------------------------------- // <copyright file="Program.cs" company="Chimomo's Company"> // // Respect the work. // // </copyright> // <summary> // // The selection sort. // // 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完为止。选择排序是不稳定的排序算法。 // // </summary> // -------------------------------------------------------------------------------------------------------------------- namespace CSharpLearning { using System; /// <summary> /// The program. /// </summary> public static class Program { /// <summary> /// The main. /// </summary> public static void Main() { int[] a = { 1, 6, 4, 2, 8, 7, 9, 3, 10, 5 }; Console.WriteLine("Before Selection Sort:"); foreach (int i in a) { Console.Write(i + " "); } Console.WriteLine("\r\n\r\nIn Selection Sort:"); SelectionSort(a); Console.WriteLine("\r\nAfter Selection Sort:"); foreach (int i in a) { Console.Write(i + " "); } Console.WriteLine(string.Empty); } /// <summary> /// The selection sort. /// </summary> /// <param name="a"> /// The a. /// </param> private static void SelectionSort(int[] a) { for (int i = 0; i < a.Length - 1; i++) { int min = i; // 存储最小元素的index。 // 寻找最小元素的index。 for (int j = i + 1; j < a.Length; j++) { if (a[j] < a[min]) { min = j; } } int tmp = a[min]; a[min] = a[i]; a[i] = tmp; Console.Write("Round {0}: ", i + 1); // 打印数组。 foreach (int k in a) { Console.Write(k + " "); } Console.WriteLine(string.Empty); } } } } // Output: /* Before Selection Sort: 1 6 4 2 8 7 9 3 10 5 In Selection Sort: Round 1: 1 6 4 2 8 7 9 3 10 5 Round 2: 1 2 4 6 8 7 9 3 10 5 Round 3: 1 2 3 6 8 7 9 4 10 5 Round 4: 1 2 3 4 8 7 9 6 10 5 Round 5: 1 2 3 4 5 7 9 6 10 8 Round 6: 1 2 3 4 5 6 9 7 10 8 Round 7: 1 2 3 4 5 6 7 9 10 8 Round 8: 1 2 3 4 5 6 7 8 10 9 Round 9: 1 2 3 4 5 6 7 8 9 10 After Selection Sort: 1 2 3 4 5 6 7 8 9 10 */
相关文章推荐
- C#算法-----(一)选择排序
- C#算法 选择排序、冒泡排序、插入排序
- C#算法-----(一)选择排序
- c# 排序 算法 函数 冒泡 选择 插入 希尔
- 【C#算法】冒泡排序 选择排序 插入排序 希尔排序--转
- C#算法 选择排序
- 常见算法:C语言中的排序算法--冒泡排序,选择排序,希尔排序
- 各种算法的C#实现系列1 - 合并排序的原理及代码分析
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排序算法的描述
- 算法基础之----二元选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 算法(algorithms)基础之:选择排序
- Python 算法 - 选择排序
- 【C#】3.算法温故而知新 - 快速排序
- 算法 - 排序 - 选择排序
- 校招算法之选择排序
- 直接选择类排序算法思想和实现过程
- C#算法基础之快速排序
- 算法:冒泡排序(Bubble Sort)、插入排序(Insertion Sort)和选择排序(Selection Sort)总结
- 冒泡排序(及其进阶——鸡尾酒排序)与选择排序的算法思想及具体事例