zoukankan      html  css  js  c++  java
  • .NET面试题系列(三)排序算法

    冒泡排序

               int[] arr = { 6, 5, 3, 1, 8, 7, 2, 4 };
                //外层循环控制排序趟数
                for (int i = 0; i < arr.Length - 1; i++)
                { 
                    //内层循环控制每一趟排序多少次
                    for (int j = 0; j < arr.Length - 1 - i; j++)
                    {
                        if (arr[j] > arr[j + 1])
                        {
                            int temp = arr[j];
                            arr[j] = arr[j + 1];
                            arr[j + 1] = temp;
                        }
                    }
                }

     快速排序

    选择排序也是一种简单直观的排序算法。

    它的工作原理很容易理解:初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(大)元素,放到已排序序列的末尾。

    以此类推,直到所有元素均排序完毕。

    注意选择排序与冒泡排序的区别:冒泡排序通过依次交换相邻两个顺序不合法的元素位置,从而将当前最小(大)元素放到合适的位置;

    而选择排序每遍历一次都记住了当前最小(大)元素的位置,最后仅需一次交换操作即可将其放到合适的位置。

     int[] arr = { 8, 5, 2, 6, 9, 3, 1, 4, 0, 7 }; // 从小到大选择排序

     

    void SelectionSort(int[] A)
            {
                for (int i = 0; i < A.Length - 1; i++)         // i为已排序序列的末尾
                {
                    int min = i;
                    for (int j = i + 1; j < A.Length; j++)     // 未排序序列
                    {
                        if (A[j] < A[min])              // 找出未排序序列中的最小值
                        {
                            min = j;
                        }
                    }
                    if (min != i)
                    {
                        Swap(A, min, i);    // 放到已排序序列的末尾,该操作很有可能把稳定性打乱,所以选择排序是不稳定的排序算法
                    }
                }
            }

    希尔排序

    http://www.cnblogs.com/cnki/

    堆排序

    https://www.cnblogs.com/learn-program/p/9613042.html

    https://www.cnblogs.com/kubidemanong/p/9722646.html

    http://www.cnblogs.com/eniac12/p/5329396.html

    https://www.cnblogs.com/cuiyuanzhang/p/10452516.html

  • 相关阅读:
    【Alpha版本】 第六天 11.14
    HashMap(JDK8) 源码分析及夺命9连问
    JUC基础
    快乐的一天从AC开始 | 20210804 | CF1549C
    快乐的一天从AC开始 | 20210803 | P3482
    快乐的一天从AC开始 | 20210802 | P2034
    快乐的一天从AC开始 | 20210801 | P1988
    快乐的一天从AC开始 | 20210731 | P2825
    快乐的一天从AC开始 | 20210730 | P4656
    快乐的一天从AC开始 | 20210729 | P5346
  • 原文地址:https://www.cnblogs.com/cnki/p/9218478.html
Copyright © 2011-2022 走看看