大家虎年快乐! 工作没有领导不行,电视没有广告不行,消费没有钞票不行,炒股没有胆量不行,这些其实都没什么,关键是新年到了,没祝福你就绝对不行。祝CSDN网友:一年高兴,两手钱挣,三餐杯碰,四面关系,五福同庆,六处逢缘,七彩轿车,八方人敬,久做美梦,十分如意! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好!词好!谢谢LZ也祝LZ新年快乐!~~~~~~~~~~jF 新年快乐!!!请教c#:箱排序,桶排序,堆排序写法已完成以下算法:冒泡排序,插入排序,希尔排序,快速排序,基数排序/// <summary>/// 冒泡排序/// </summary>/// <param name="arr"></param>public void Sort(int[] arr){ for (int i = arr.Length - 1; i > 0; i--) { for (int j = 0; j < i; j++) { if (arr[i] < arr[j]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }}/// <summary>/// 插入排序/// </summary>/// <param name="arr"></param>public void Sort(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; }}/// <summary>/// 快速排序/// </summary>/// <param name="list"></param>/// <param name="low"></param>/// <param name="high"></param>public void Sort(int[] list, int low, int high){ int pivot; int l, r; int mid; if (high <= low) return; else if (high == low + 1) { if (list[low] > list[high]) Swap(ref list[low], ref list[high]); return; } mid = (low + high) >> 1; pivot = list[mid]; Swap(ref list[low], ref list[mid]); l = low + 1; r = high; do { while (l <= r && list[l] < pivot) l++; while (list[r] >= pivot) r--; if (l < r) Swap(ref list[l], ref list[r]); } while (l < r); list[low] = list[r]; list[r] = pivot; if (low + 1 < r) Sort(list, low, r - 1); if (r + 1 < high) Sort(list, r + 1, high);}/// <summary>/// 交换位置ExchageValue/// </summary>/// <param name="l"></param>/// <param name="r"></param>private void Swap(ref int l, ref int r){ int temp; temp = l; l = r; r = temp;}/// <summary>/// 希尔排序/// </summary>/// <param name="arr"></param>public void Sort(int[] arr){ int inc; for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ; for (; inc > 0; inc /= 3) { for (int i = inc + 1; i <= arr.Length; i += inc) { int t = arr[i - 1]; int j = i; while ((j > inc) && (arr[j - inc - 1] > t)) { arr[j - 1] = arr[j - inc - 1];//交换数据 j -= inc; } arr[j - 1] = t; } }}/// <summary>/// 基数排序/// </summary>/// <param name="arr"></param>/// <param name="digit"></param>/// <returns></returns>public int[] Sort(int[] arr, int digit){ //low to high digit for (int k = 1; k <= digit; k++) { //temp array to store the sort result inside digit int[] tmpArray = new int[arr.Length]; //temp array for countingsort int[] tmpCountingSortArray = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //CountingSort for (int i = 0; i < arr.Length; i++) { //split the specified digit from the element int tmpSplitDigit = arr[i] / (int)Math.Pow(10, k - 1) - (arr[i] / (int)Math.Pow(10, k)) * 10; tmpCountingSortArray[tmpSplitDigit] += 1; } for (int m = 1; m < 10; m++) { tmpCountingSortArray[m] += tmpCountingSortArray[m - 1]; } //output the value to result for (int n = arr.Length - 1; n >= 0; n--) { int tmpSplitDigit = arr[n] / (int)Math.Pow(10, k - 1) - (arr[n] / (int)Math.Pow(10, k)) * 10; tmpArray[tmpCountingSortArray[tmpSplitDigit] - 1] = arr[n]; tmpCountingSortArray[tmpSplitDigit] -= 1; } //copy the digit-inside sort result to source array for (int p = 0; p < arr.Length; p++) { arr[p] = tmpArray[p]; } } return arr;} 界面套件xamDataGrid用法 账单打印问题 WPF里如何给菜单添加快捷键 DropDownList 绑定最近10年 为什么我建的“智能设置项目”加载图片总是出错呢 javascript:__doPostBack() datagridview问题 请问用C#可以做DLL吗?,做出来的DLL可以在没有FRAMEWORK的环境下使用吗 为什么在本地可以,一旦上传服务器,老会出现这个问题WebForm_PostBackOptions未定义,急 求一正则表达式? mysql表有个日期字段用的是int,选择一个时间段的数据怎么写? C#一个简单的问题
已完成以下算法:冒泡排序,插入排序,希尔排序,快速排序,基数排序/// <summary>
/// 冒泡排序
/// </summary>
/// <param name="arr"></param>
public void Sort(int[] arr)
{
for (int i = arr.Length - 1; i > 0; i--)
{
for (int j = 0; j < i; j++)
{
if (arr[i] < arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}/// <summary>
/// 插入排序
/// </summary>
/// <param name="arr"></param>
public void Sort(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;
}
}/// <summary>
/// 快速排序
/// </summary>
/// <param name="list"></param>
/// <param name="low"></param>
/// <param name="high"></param>
public void Sort(int[] list, int low, int high)
{
int pivot;
int l, r;
int mid;
if (high <= low)
return;
else if (high == low + 1)
{
if (list[low] > list[high])
Swap(ref list[low], ref list[high]);
return;
}
mid = (low + high) >> 1;
pivot = list[mid];
Swap(ref list[low], ref list[mid]);
l = low + 1;
r = high;
do
{
while (l <= r && list[l] < pivot)
l++;
while (list[r] >= pivot)
r--;
if (l < r)
Swap(ref list[l], ref list[r]);
} while (l < r);
list[low] = list[r];
list[r] = pivot;
if (low + 1 < r)
Sort(list, low, r - 1);
if (r + 1 < high)
Sort(list, r + 1, high);
}/// <summary>
/// 交换位置ExchageValue
/// </summary>
/// <param name="l"></param>
/// <param name="r"></param>
private void Swap(ref int l, ref int r)
{
int temp;
temp = l;
l = r;
r = temp;
}
/// <summary>
/// 希尔排序
/// </summary>
/// <param name="arr"></param>
public void Sort(int[] arr)
{
int inc;
for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ;
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= arr.Length; i += inc)
{
int t = arr[i - 1];
int j = i;
while ((j > inc) && (arr[j - inc - 1] > t))
{
arr[j - 1] = arr[j - inc - 1];//交换数据
j -= inc;
}
arr[j - 1] = t;
}
}
}/// <summary>
/// 基数排序
/// </summary>
/// <param name="arr"></param>
/// <param name="digit"></param>
/// <returns></returns>
public int[] Sort(int[] arr, int digit)
{
//low to high digit
for (int k = 1; k <= digit; k++)
{
//temp array to store the sort result inside digit
int[] tmpArray = new int[arr.Length];
//temp array for countingsort
int[] tmpCountingSortArray = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
//CountingSort
for (int i = 0; i < arr.Length; i++)
{
//split the specified digit from the element
int tmpSplitDigit = arr[i] / (int)Math.Pow(10, k - 1) - (arr[i] / (int)Math.Pow(10, k)) * 10;
tmpCountingSortArray[tmpSplitDigit] += 1;
}
for (int m = 1; m < 10; m++)
{
tmpCountingSortArray[m] += tmpCountingSortArray[m - 1];
}
//output the value to result
for (int n = arr.Length - 1; n >= 0; n--)
{
int tmpSplitDigit = arr[n] / (int)Math.Pow(10, k - 1) - (arr[n] / (int)Math.Pow(10, k)) * 10;
tmpArray[tmpCountingSortArray[tmpSplitDigit] - 1] = arr[n];
tmpCountingSortArray[tmpSplitDigit] -= 1;
}
//copy the digit-inside sort result to source array
for (int p = 0; p < arr.Length; p++)
{
arr[p] = tmpArray[p];
}
}
return arr;
}