随笔 - 436,  文章 - 151,  评论 - 86,  阅读 - 136万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> seqlist = new List<int> { 42, 20,17, 27,13,8,17,48};
            HeadOrder(seqlist, 0, seqlist.Count - 1);
 
        }
 
        public void BubbleSort(List<int> sqList)
        {
            
        }
 
 
        public static void CreadHeap(List<int> seqList, int low, int high)
        {           
            int k;
            int j=0;
            int temp = 0;
 
            for (int i = high / 2; i >= low; i--)
            {
                k = i;
                temp = seqList[i];
 
                j = 2 * k + 1;              
 
                while (j <= high)
                {                 
                    if (j < high
                        && j + 1 <= high
                        && seqList[j] < seqList[j + 1])
                    {
                        j++;
                    }
 
                    if (temp < seqList[j])
                    {
                        seqList[k] = seqList[j];                                         
 
                        k = j;
                        j = 2 * k + 1;
                    }
                    else
                    {
                        j = high + 1;
                    }
                }
 
                seqList[k] = temp;
            }
 
        }
 
 
        public static void HeadOrder(List<int> seqlist, int low, int high)
        {
            if (high <= low)
            {
                return;
            }
            
            int temp = 0;
 
            CreadHeap(seqlist, 0, high);
 
            for (int i = seqlist.Count - 1; i > low; i--)
            {
 
                temp = seqlist[0];
 
                seqlist[0] = seqlist[i];
 
                seqlist[i] = temp;
 
                CreadHeap(seqlist, 0, i-1);              
            }
        }
 
    }
}

 方法二:

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> seqlist = new List<int> { 42, 20,17, 27,13,8,17,48};

            HeadOrder(seqlist, 0, seqlist.Count - 1);
        }

        public void BubbleSort(List<int> sqList)
        {
            int tmp = 0;

            for (int i = 0; i < sqList.Count -1; ++i)
            {
                for (int j = i +1; j<sqList.Count; j++)
                {
                    if (sqList[i] < sqList[j])
                    {
                        tmp = sqList[i];
                        sqList[i] = sqList[j];
                        sqList[j] = tmp;
                    }
                }
            }
        }


        public static void CreadHeap(List<int> seqList, int low, int high)
        {
            int k;
            int j = 0;
            int temp = 0;

            for (int i = high / 2; i >= low; i--)
            {
                k = i;
                j = 2 * k + 1;

                while (j <= high)
                {
                    temp = seqList[k];

                    if (j < high
                        && j + 1 <= high
                        && seqList[j] < seqList[j + 1])
                    {
                        j++;
                    }

                    if (temp < seqList[j])
                    {
                        seqList[k] = seqList[j];
                        seqList[j] = temp;

                        k = j;
                        j = 2 * k + 1;
                    }
                    else
                    {
                        j = high + 1;
                    }

                }
            }
        }


        public static void HeadOrder(List<int> seqlist, int low, int high)
        {
            if (high <= low)
            {
                return;
            }

            int i = low;
            int temp = 0;

            CreadHeap(seqlist, 0, high);

            temp = seqlist[0];

            seqlist[0] = seqlist[high];

            seqlist[high] = temp;

            HeadOrder(seqlist, i, high - 1);
        }

    }
}
复制代码

 

 

posted on   higirle  阅读(431)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
历史上的今天:
2010-12-11 项目管理目录导航
2010-12-11 【转】软件项目经理素质能力的必备要求
点击右上角即可分享
微信分享提示