给定一个数组 a={4,7,1,9,3,4,7,6} 要求以第一个为准,大的放后面小的放前面 给定一个数组 a={4,7,1,9,3,4,7,6} 要求以第一个为准,大的放后面小的放前面。怎么实现啊? 输出结果如{1,3,4,4,7,9,7,6} 或者 {1,3,4,4,6,7,9,7} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 排序方法很多如 public static void BubbleSort(int[] list) { for (int i = 0; i < list.Length; i++) { for (int j = i; j < list.Length; j++) { if (list[i] < list[j]) { int temp = list[i]; list[i] = list[j]; list[j] = temp; } } } } /// 插入排序法 public static void InsertionSort(int[] list) { for (int i = 1; i < list.Length; i++) { int t = list[i]; int j = i; while ((j > 0) && (list[j - 1] > t)) { list[j] = list[j - 1]; --j; } list[j] = t; } } /// 选择排序法 public static void SelectionSort(int[] list) { int min; for (int i = 0; i < list.Length - 1; i++) { min = i; for (int j = i + 1; j < list.Length; j++) { if (list[j] < list[min]) min = j; } int t = list[min]; list[min] = list[i]; list[i] = t; } } /// 希尔排序法 public static void ShellSort(int[] list) { int inc; for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ; for (; inc > 0; inc /= 3) { for (int i = inc + 1; i <= list.Length; i += inc) { int t = list[i - 1]; int j = i; while ((j > inc) && (list[j - inc - 1] > t)) { list[j - 1] = list[j - inc - 1]; j -= inc; } list[j - 1] = t; } } } private static void Swap(ref int l, ref int r) { int s; s = l; l = r; r = s; } public static 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); } 关于.net编程 救命的请进~ToolTip.Show (String, IWin32Window, Int32, Int32, Int32) .net如何制作安装文件 又是窗体传值啊,知道的高手们进来看下啊,困扰我好久了,进度就此打住了 请求帮助 穷举法内存耗尽 通过按钮切换在panel中添加的多个子窗体,子窗体和子窗体间无法覆盖,有什么解决办法吗? 脸谱识别技术 免費電影下載網址 在C#窗体应用中,怎样调用DOS命令(eg:net ..)? 控件撤销功能 求一段远程启动计算机的相关代码
public static void BubbleSort(int[] list)
{
for (int i = 0; i < list.Length; i++)
{
for (int j = i; j < list.Length; j++)
{
if (list[i] < list[j])
{
int temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
}
}
/// 插入排序法
public static void InsertionSort(int[] list)
{
for (int i = 1; i < list.Length; i++)
{
int t = list[i];
int j = i;
while ((j > 0) && (list[j - 1] > t))
{
list[j] = list[j - 1];
--j;
}
list[j] = t;
}
}
/// 选择排序法
public static void SelectionSort(int[] list)
{
int min;
for (int i = 0; i < list.Length - 1; i++)
{
min = i;
for (int j = i + 1; j < list.Length; j++)
{
if (list[j] < list[min])
min = j;
}
int t = list[min];
list[min] = list[i];
list[i] = t;
}
} /// 希尔排序法
public static void ShellSort(int[] list)
{
int inc;
for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= list.Length; i += inc)
{
int t = list[i - 1];
int j = i;
while ((j > inc) && (list[j - inc - 1] > t))
{
list[j - 1] = list[j - inc - 1];
j -= inc;
}
list[j - 1] = t;
}
}
}
private static void Swap(ref int l, ref int r)
{
int s;
s = l;
l = r;
r = s;
}
public static 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);
}