• 排序


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Sort
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] myData = { 1000, 3, 55, 33, 4, 34, 344, 23, 333, 32, 66, 76, 766, 454 };
              //  bubbleSort(myData);
                // SelectSort(myData);
                InsertSort(myData);
                print(myData);
                Console.ReadKey();
    
            }
    
            static void print(int[] items)
            {
                Console.WriteLine("*******显示数组开始*******");
                foreach (int item in items)
                {
    
                    Console.WriteLine(item);
    
                }
                Console.WriteLine("*******显示数组结束*******");
            }
    
            //冒泡
            static void bubbleSort(int[] items)
            {
                bool flag; //设一个标志
                for (int i = 0; i < items.Length - 1; i++)
                {
                    flag = false;
                    for (int j = 0; j < items.Length - 1 - i; j++)
                    {
                        if (items[j] > items[j + 1])
                        {
                            int temp = items[j];
                            items[j] = items[j + 1];
                            items[j + 1] = temp;
                            flag = true;  //标志设为true
                        }
                    }
    
                    if (flag == false)
                        return; //没发生交换,表明当前已经有序,直接返回
                }
            }
    
            //选择  从0开始,从剩余部分数组中选出最小值
    
            static void SelectSort(int[] arr)
            {
    
                int min;
                for (int i = 0; i < arr.Length - 1; ++i)
                {
                    min = i;
                    for (int j = i + 1; j < arr.Length; ++j)
                    {
                        if (arr[j] < arr[min])
                            min = j;
                    }
                    
                    int t = arr[min];
                    arr[min] = arr[i];
                    arr[i] = t;
                }
            }
            //插入排序--直接插入
            static void InsertSort(int[] arr)
            {
                for (int i = 1; i < arr.Length; i++)
                {
                    int t = arr[i];
                    int j = i;
                    while ((j > 0) && (arr[j - 1] > t))
                    {
                        arr[j] = arr[j - 1];//交换顺序
                        --j;
                    }
                    arr[j] = t;
                }
            }
        }
    }
    
    
  • 相关阅读:
    APIO 2010 特别行动队 斜率优化DP
    洛谷 P2747 Canada Tour 周游加拿大 动态规划
    VIJOS-P1282 佳佳的魔法照片 排序
    [APIO2012]派遣 可并堆
    可并堆模板题-mergeable heap
    可并堆总结
    分治思想及树上点分治
    拉丁字母(英语)缩写
    区块链是什么?跟比特币有什么关系?
    究竟什么比特币?如何理解比特币?
  • 原文地址:https://www.cnblogs.com/oneroom/p/1870210.html
Copyright © 2020-2023  润新知