C#堆排序
来源:互联网 发布:mac版ps字体怎么安装 编辑:程序博客网 时间:2024/05/19 18:47
笔试了不少校招题目 主要是互联网公司 题目主要为基础与海量数据 悲催的百度居然死在堆排序 唉 上班半年 基础算法很多都忘了 再写一下堆排序吧
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Caculater{ class HeapSortClass { public static void Main(string[] args) { int[] array = new int[100]; Random rdm = new Random(); for (int i = 0; i < array.Length; i++) { array[i] = rdm.Next(1000); } foreach (var i in array) { Console.WriteLine(i); } Console.ReadLine(); HeapSort(array); foreach (var i in array) { Console.WriteLine(i); } Console.ReadLine(); } private static void HeapSort(int[] array) { Build(array); int k = 1; foreach (var i in array) { Console.WriteLine(k++.ToString()+" "+i.ToString()); } Console.ReadLine(); for (int i = array.Length; i >1 ; i--) { int temp = array[i-1]; array[i-1] = array[0]; array[0] = temp; Max_Heapify(array, 1, i - 1); } } private static void Build(int[] array) { for (int i = array.Length / 2; i >= 1; i--) { Max_Heapify(array, i ,array.Length); } } private static void Max_Heapify(int[] array, int index,int length) { //length为堆的长度 int leftChild = index * 2; int rightChild = leftChild + 1; int largest = index; if (leftChild <= length && array[leftChild-1] > array[largest-1]) { largest = leftChild; } if (rightChild <= length && array[rightChild-1] > array[largest-1]) { largest = rightChild; } if (largest != index) { int temp = array[index-1]; array[index-1] = array[largest-1]; array[largest-1] = temp; Max_Heapify(array, largest,length); } } }}
- 堆排序 C#
- C#堆排序
- C# 堆排序
- 堆排序C#实现
- C#实现堆排序
- C#中堆排序记录
- 堆排序,Dijikstra算法和C#
- 堆排序算法(C#实现)
- 堆排序在C#中的实现
- 堆排序——C#实现
- C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
- 数据结构:插入排序/冒泡排序/快速排序/归并排序/堆排序 C#语言实现
- C# 实现常用的算法-- 堆排序(转)
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 一道java笔试题
- 7.4 inline class (将类内联化)
- 认识嵌入式,走进嵌入式,为什么要学习嵌入式?
- UNIX 系统家族树的详细历史(图)
- tomcat和apache区别联系
- C#堆排序
- VC 添加右键菜单
- 那么我适合学习嵌入式开发吗?
- 嵌入式的彼岸花
- 神兵利器
- 2011-10-14
- Fixcel电子表单——前端动作脚本
- 需要学会如何搭建嵌入式Linux开发环境一
- C++类构造函数初始化列表