C#编写的 8种初级+高级排序方法(转)
摘自:http://blog.csdn.net/mevin/article/details/6714520
程序代码: view plaincopy to clipboard
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace c_sharp_sort
{
class Program
{
static void Main(string[] args)
{
int[] test7 = { , , , , , , , , , };
heapsort(test7, , ); //堆排序
foreach (int a in test7)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test6 = { , , , , , , , , , };
radixsort(test6, , , ); //基数排序(第4个参数是数组中最大数的10的最大次瞑)
foreach (int a in test6)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test0 = { , , , , , , , , , };
insertsort(test0, ); //插入排序
foreach (int a in test0)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test1 = { , ,, , , , , , , };
newinsertsort(test1, ); //折半插入排序
foreach (int a in test1)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test2 = { , ,, , , , , , , };
shellsort(test2, ); //希尔排序
foreach (int a in test2)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test3 = { , , , , , , , , , };
paopaosort(test3, ); //冒泡排序
foreach (int a in test3)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test4 = { , , , , , , , , , };
fastsort(test4, , ); //快速排序
foreach (int a in test4)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test5 = { , , , , , , , , , };
selectsort(test5, ); //选择排序
foreach (int a in test5)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); Console.Read();
}
static public void heapsort(int[] array, int begin, int end) //堆排序
{
int temp, i, j, length;
for (i = (end - begin) / ; i >= begin; i--) //建初堆
{
j = i;
while (j <= (end - begin) / )
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
else
{
if (array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
break;
}
}
}
for (length = end; length > begin; length--) //首尾交换
{
temp = array[length];
array[length] = array[];
array[] = temp;
j = ;
while (j < (length - begin-) / ) //调整堆
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
}
}
} static public void insertsort(int[] array, int length) //直接插入排序
{
int i,j,temp;
for (i = ; i < length; i++)
{
temp = array[i];
j=i-;
while (temp<array[j])
{
array[j + ] = array[j];
j = j - ;
if (j == -)
{
break;
}
}
array[j+]=temp;
}
} static public void newinsertsort(int[] array, int length) //折半插入排序
{
int low,high, i,j,temp;
for (i = ; i <length; i++)
{
temp = array[i];
low = ; high = i - ;
j= (high-low)/;
while (low<=high)
{
if (low == high)
{
if (array[] > temp)
j = ;
else
j = ;
break;
}
else if (low == high - )
{
if (array[j + ] < temp)
j += ;
else if (array[j] < temp)
j++;
break;
}
else if (array[j] < temp)
{
low = j;
j += (high - low) / ;
}
else if (array[j] > temp)
{
high = j;
j= low+(high - low) / ;
}
else
break;
}
for (int n = i- ; n >= j; n--)
array[n + ] = array[n];
array[j] = temp;
}
} static public void shellsort(int[] array, int length) //希尔排序(基于直接插入排序)
{
int i, j,k,delta=length/,temp;
while(delta!=) //delte为分组递增值
{
for (i = ; i < delta; i++)
{
for (j = i + delta; j < length; j += delta)
{
temp = array[j];
k = j - delta;
while (temp < array[k]) //对每组进行直接插入排序
{
array[k + delta] = array[k];
k = k - delta;
if (k == i - delta)
{
break;
}
}
array[k + delta] = temp;
}
j -= delta;
if (array[j] < array[i]) //2组之间首位进行交换排序
{
temp = array[j];
array[j] = array[j];
array[j] = temp;
}
}
delta /= ;
}
} static public void paopaosort(int[] array, int length) //冒泡排序
{
int i, j, temp;
j=length;
while(j!=)
{
for (i = ; i < j-; i++)
{
if (array[i]>array[i+])
{
temp=array[i];
array[i]=array[i+];
array[i+]=temp;
}
}
j--;
}
} static public void fastsort(int[] array, int begin,int end) //快速排序
{
if (begin < || end < || begin >end)
return;
int left = begin, right = end, temp; //经典的快排
temp = array[left];
while (right != left)
{
while (temp < array[right] && right>left)
right--;
if (right > left)
{
array[left] = array[right];
left++;
}
while (temp > array[left] && right > left)
left++;
if (right > left)
{
array[right] = array[left];
right--;
}
}
array[right] = temp;
fastsort(array, right + , end);
fastsort(array, begin, right-);
}
static public void selectsort(int[] array, int length) //选择排序
{
int i=, j, min,temp_array,temp;
while (i < length - )
{
min = array[i];
temp = i;
for (j = i+; j < length; j++)
{
if (array[j] < min)
{
min = array[j];
temp = j;
}
}
temp_array = array[i];
array[i] = array[temp];
array[temp] = temp_array;
i++;
}
}
static public void radixsort(int[] array, int begin,int last, int pow) //基数排序
{
Queue<int>[] queue = new Queue<int>[]; //利用泛型队列来存储筛选分组
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
int[] nn={,,,,,,,,,};
int x, p = pow, n,i;
while (p >= )
{
for (i=begin;i<=last;i++)
{int sum=array[i];
n=pow-p;
while(n!=)
{
sum=sum/;
n--;}
sum=sum%;
switch (sum)
{case : queue[].Enqueue(array[i]);nn[]++;break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
}
} //for
x=n=;
for (i=;i<;i++)
{n=n+x;
x=nn[i];
while (nn[i]!=)
{
array[n + x - nn[i]] = queue[i].Peek();
queue[i].Dequeue();
nn[i]--;
}}
p--;} //while
}
}
}
[c-sharp] view plaincopy
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace c_sharp_sort
{
class Program
{
static void Main(string[] args)
{
int[] test7 = { , , , , , , , , , };
heapsort(test7, , ); //堆排序
foreach (int a in test7)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test6 = { , , , , , , , , , };
radixsort(test6, , , ); //基数排序(第4个参数是数组中最大数的10的最大次瞑)
foreach (int a in test6)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test0 = { , , , , , , , , , };
insertsort(test0, ); //插入排序
foreach (int a in test0)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test1 = { , ,, , , , , , , };
newinsertsort(test1, ); //折半插入排序
foreach (int a in test1)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test2 = { , ,, , , , , , , };
shellsort(test2, ); //希尔排序
foreach (int a in test2)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test3 = { , , , , , , , , , };
paopaosort(test3, ); //冒泡排序
foreach (int a in test3)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test4 = { , , , , , , , , , };
fastsort(test4, , ); //快速排序
foreach (int a in test4)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test5 = { , , , , , , , , , };
selectsort(test5, ); //选择排序
foreach (int a in test5)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); Console.Read();
}
static public void heapsort(int[] array, int begin, int end) //堆排序
{
int temp, i, j, length;
for (i = (end - begin) / ; i >= begin; i--) //建初堆
{
j = i;
while (j <= (end - begin) / )
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
else
{
if (array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
break;
}
}
}
for (length = end; length > begin; length--) //首尾交换
{
temp = array[length];
array[length] = array[];
array[] = temp;
j = ;
while (j < (length - begin-) / ) //调整堆
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
}
}
} static public void insertsort(int[] array, int length) //直接插入排序
{
int i,j,temp;
for (i = ; i < length; i++)
{
temp = array[i];
j=i-;
while (temp<array[j])
{
array[j + ] = array[j];
j = j - ;
if (j == -)
{
break;
}
}
array[j+]=temp;
}
} static public void newinsertsort(int[] array, int length) //折半插入排序
{
int low,high, i,j,temp;
for (i = ; i <length; i++)
{
temp = array[i];
low = ; high = i - ;
j= (high-low)/;
while (low<=high)
{
if (low == high)
{
if (array[] > temp)
j = ;
else
j = ;
break;
}
else if (low == high - )
{
if (array[j + ] < temp)
j += ;
else if (array[j] < temp)
j++;
break;
}
else if (array[j] < temp)
{
low = j;
j += (high - low) / ;
}
else if (array[j] > temp)
{
high = j;
j= low+(high - low) / ;
}
else
break;
}
for (int n = i- ; n >= j; n--)
array[n + ] = array[n];
array[j] = temp;
}
} static public void shellsort(int[] array, int length) //希尔排序(基于直接插入排序)
{
int i, j,k,delta=length/,temp;
while(delta!=) //delte为分组递增值
{
for (i = ; i < delta; i++)
{
for (j = i + delta; j < length; j += delta)
{
temp = array[j];
k = j - delta;
while (temp < array[k]) //对每组进行直接插入排序
{
array[k + delta] = array[k];
k = k - delta;
if (k == i - delta)
{
break;
}
}
array[k + delta] = temp;
}
j -= delta;
if (array[j] < array[i]) //2组之间首位进行交换排序
{
temp = array[j];
array[j] = array[j];
array[j] = temp;
}
}
delta /= ;
}
} static public void paopaosort(int[] array, int length) //冒泡排序
{
int i, j, temp;
j=length;
while(j!=)
{
for (i = ; i < j-; i++)
{
if (array[i]>array[i+])
{
temp=array[i];
array[i]=array[i+];
array[i+]=temp;
}
}
j--;
}
} static public void fastsort(int[] array, int begin,int end) //快速排序
{
if (begin < || end < || begin >end)
return;
int left = begin, right = end, temp; //经典的快排
temp = array[left];
while (right != left)
{
while (temp < array[right] && right>left)
right--;
if (right > left)
{
array[left] = array[right];
left++;
}
while (temp > array[left] && right > left)
left++;
if (right > left)
{
array[right] = array[left];
right--;
}
}
array[right] = temp;
fastsort(array, right + , end);
fastsort(array, begin, right-);
}
static public void selectsort(int[] array, int length) //选择排序
{
int i=, j, min,temp_array,temp;
while (i < length - )
{
min = array[i];
temp = i;
for (j = i+; j < length; j++)
{
if (array[j] < min)
{
min = array[j];
temp = j;
}
}
temp_array = array[i];
array[i] = array[temp];
array[temp] = temp_array;
i++;
}
}
static public void radixsort(int[] array, int begin,int last, int pow) //基数排序
{
Queue<int>[] queue = new Queue<int>[]; //利用泛型队列来存储筛选分组
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
int[] nn={,,,,,,,,,};
int x, p = pow, n,i;
while (p >= )
{
for (i=begin;i<=last;i++)
{int sum=array[i];
n=pow-p;
while(n!=)
{
sum=sum/;
n--;}
sum=sum%;
switch (sum)
{case : queue[].Enqueue(array[i]);nn[]++;break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
}
} //for
x=n=;
for (i=;i<;i++)
{n=n+x;
x=nn[i];
while (nn[i]!=)
{
array[n + x - nn[i]] = queue[i].Peek();
queue[i].Dequeue();
nn[i]--;
}}
p--;} //while
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace c_sharp_sort
{
class Program
{
static void Main(string[] args)
{
int[] test7 = { , , , , , , , , , };
heapsort(test7, , ); //堆排序
foreach (int a in test7)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test6 = { , , , , , , , , , };
radixsort(test6, , , ); //基数排序(第4个参数是数组中最大数的10的最大次瞑)
foreach (int a in test6)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test0 = { , , , , , , , , , };
insertsort(test0, ); //插入排序
foreach (int a in test0)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test1 = { , ,, , , , , , , };
newinsertsort(test1, ); //折半插入排序
foreach (int a in test1)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test2 = { , ,, , , , , , , };
shellsort(test2, ); //希尔排序
foreach (int a in test2)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test3 = { , , , , , , , , , };
paopaosort(test3, ); //冒泡排序
foreach (int a in test3)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test4 = { , , , , , , , , , };
fastsort(test4, , ); //快速排序
foreach (int a in test4)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); int[] test5 = { , , , , , , , , , };
selectsort(test5, ); //选择排序
foreach (int a in test5)
Console.Write(a.ToString().PadRight());
Console.WriteLine(); Console.Read();
}
static public void heapsort(int[] array, int begin, int end) //堆排序
{
int temp, i, j, length;
for (i = (end - begin) / ; i >= begin; i--) //建初堆
{
j = i;
while (j <= (end - begin) / )
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
else
{
if (array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
break;
}
}
}
for (length = end; length > begin; length--) //首尾交换
{
temp = array[length];
array[length] = array[];
array[] = temp;
j = ;
while (j < (length - begin-) / ) //调整堆
{
if (( * j + ) <= end)
{
if (array[ * j + ] > array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[ * j + ];
array[ * j + ] = array[j];
array[j] = temp;
j = * j + ;
}
else if (array[ * j + ] < array[ * j + ] && array[ * j + ] > array[j])
{
temp = array[j];
array[j] = array[ * j + ];
array[ * j + ] = temp;
j = * j + ;
}
else
break;
}
}
}
} static public void insertsort(int[] array, int length) //直接插入排序
{
int i,j,temp;
for (i = ; i < length; i++)
{
temp = array[i];
j=i-;
while (temp<array[j])
{
array[j + ] = array[j];
j = j - ;
if (j == -)
{
break;
}
}
array[j+]=temp;
}
} static public void newinsertsort(int[] array, int length) //折半插入排序
{
int low,high, i,j,temp;
for (i = ; i <length; i++)
{
temp = array[i];
low = ; high = i - ;
j= (high-low)/;
while (low<=high)
{
if (low == high)
{
if (array[] > temp)
j = ;
else
j = ;
break;
}
else if (low == high - )
{
if (array[j + ] < temp)
j += ;
else if (array[j] < temp)
j++;
break;
}
else if (array[j] < temp)
{
low = j;
j += (high - low) / ;
}
else if (array[j] > temp)
{
high = j;
j= low+(high - low) / ;
}
else
break;
}
for (int n = i- ; n >= j; n--)
array[n + ] = array[n];
array[j] = temp;
}
} static public void shellsort(int[] array, int length) //希尔排序(基于直接插入排序)
{
int i, j,k,delta=length/,temp;
while(delta!=) //delte为分组递增值
{
for (i = ; i < delta; i++)
{
for (j = i + delta; j < length; j += delta)
{
temp = array[j];
k = j - delta;
while (temp < array[k]) //对每组进行直接插入排序
{
array[k + delta] = array[k];
k = k - delta;
if (k == i - delta)
{
break;
}
}
array[k + delta] = temp;
}
j -= delta;
if (array[j] < array[i]) //2组之间首位进行交换排序
{
temp = array[j];
array[j] = array[j];
array[j] = temp;
}
}
delta /= ;
}
} static public void paopaosort(int[] array, int length) //冒泡排序
{
int i, j, temp;
j=length;
while(j!=)
{
for (i = ; i < j-; i++)
{
if (array[i]>array[i+])
{
temp=array[i];
array[i]=array[i+];
array[i+]=temp;
}
}
j--;
}
} static public void fastsort(int[] array, int begin,int end) //快速排序
{
if (begin < || end < || begin >end)
return;
int left = begin, right = end, temp; //经典的快排
temp = array[left];
while (right != left)
{
while (temp < array[right] && right>left)
right--;
if (right > left)
{
array[left] = array[right];
left++;
}
while (temp > array[left] && right > left)
left++;
if (right > left)
{
array[right] = array[left];
right--;
}
}
array[right] = temp;
fastsort(array, right + , end);
fastsort(array, begin, right-);
}
static public void selectsort(int[] array, int length) //选择排序
{
int i=, j, min,temp_array,temp;
while (i < length - )
{
min = array[i];
temp = i;
for (j = i+; j < length; j++)
{
if (array[j] < min)
{
min = array[j];
temp = j;
}
}
temp_array = array[i];
array[i] = array[temp];
array[temp] = temp_array;
i++;
}
}
static public void radixsort(int[] array, int begin,int last, int pow) //基数排序
{
Queue<int>[] queue = new Queue<int>[]; //利用泛型队列来存储筛选分组
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
queue[] = new Queue<int>();
int[] nn={,,,,,,,,,};
int x, p = pow, n,i;
while (p >= )
{
for (i=begin;i<=last;i++)
{int sum=array[i];
n=pow-p;
while(n!=)
{
sum=sum/;
n--;}
sum=sum%;
switch (sum)
{case : queue[].Enqueue(array[i]);nn[]++;break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
case : queue[].Enqueue(array[i]); nn[]++; break;
}
} //for
x=n=;
for (i=;i<;i++)
{n=n+x;
x=nn[i];
while (nn[i]!=)
{
array[n + x - nn[i]] = queue[i].Peek();
queue[i].Dequeue();
nn[i]--;
}}
p--;} //while
}
}
}
C#编写的 8种初级+高级排序方法(转)的更多相关文章
- Java中8种常见的排序方法
排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少 ...
- php语言实现的7种基本的排序方法
今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也 ...
- Java几种常见的排序方法
日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一 ...
- 几种常见的排序方法总结(Python)
几种常见的排序算法总结(Python) 排序算法:是一种能将一串数据依照特定顺序进行排序的一种算法. 稳定性:稳定排序算法会让原本有相等键值的记录维持相对次序.也就是如果一个排序算法是稳定的,当有两个 ...
- 比较两种数组随机排序方法的效率 JavaScript版
//比较2中数组随机排序方法的效率 JavaScript版 //randon1思路 //当len=5时候,从0-5中随机3一个放入i=0, // 从0-3随机一个2放入i=2 // 从0-2随机一个1 ...
- 几种常见的排序方法(C语言实现)
#include <stdio.h> #include <stdlib.h> #include <Windows.h> //直接插入排序 void InsertSo ...
- C# 几种常见的排序方法
1.冒泡排序 //冒泡排序 public void BubbleSort(int[] list) { int i, j, temp; bool done = false; j = ; while (( ...
- 一种比较高级的方法也可以修改windows为默认启动系统
运行: sudo mv /etc/grub.d/30_os-prober /etc/grub.d/06_os-probersudo update-grub
- 【高级排序算法】1、归并排序法 - Merge Sort
归并排序法 - Merge Sort 文章目录 归并排序法 - Merge Sort nlogn 比 n^2 快多少? 归并排序设计思想 时间.空间复杂度 归并排序图解 归并排序描述 归并排序小结 参 ...
随机推荐
- 高性能 Socket 组件 HP-Socket v3.2.1 正式公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- joel 相关
1. stack overflow , http://blog.jobbole.com/102810/, stack overflow 提问也是一门学问. 2. tello 类似于 leangoo,一 ...
- Velocity中的ComparisonDateTool、MathTool、NumberT...
Velocity中的ComparisonDateTool.MathTool.NumberTool.SortTool.EscapeTool工具 可以从Apache官方网站自带的例子中查找,位置\velo ...
- 第十一章 springboot + mongodb(简单查询)
1.mongodb在mac上的安装 下载mongodb,https://www.mongodb.org/ 解压缩到一个指定文件夹,如:/Users/enniu1/Desktop/zjg/mongodb ...
- jquery圆角插件
为了实现div的圆角效果,你还在用古老的背景图片拼凑的方法吗?还是在用各种浏览器不互相兼容的CSS方式?如果你还在用这样的方式实现圆角,那我告诉你你真的out了,或许是我out了,竟然以前没发现有这样 ...
- 细数IE6的一串串的恼人bug,附加解决方法!
1. li在IE中底部3像素的BUG 解决方案:在<li>上加float:left:即可解决 2. IE6中奇数宽高的BUG. 解决方案:就是将外部相对定位的div宽度改成偶数.高度也是一 ...
- 记录C#错误日志工具
在编程过程中,我们经常会用try...catch处理可能出错的代码块.如果程序出现错误,则直接show出错误信息. 当然,大型的系统都有错误日志处理模块,用数据库记录错误日志信息,有相应的写入错误日志 ...
- POJ 1651 Multiplication Puzzle (区间DP)
Description The multiplication puzzle is played with a row of cards, each containing a single positi ...
- Ext 弹出窗体显示到iframe之外
主要是这句话 var _win = new top.Ext.Window({});即可完成需要功能 var _win = new top.Ext.Window({ title: ' ...
- mysql 错误:1166 解决办法
原因:检查字段里面是不是有空格,去掉就可以了