摘自: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种初级+高级排序方法(转)的更多相关文章

  1. Java中8种常见的排序方法

    排序方法的演示1)插入排序(直接插入排序.希尔排序)2)交换排序(冒泡排序.快速排序)3)选择排序(直接选择排序.堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少 ...

  2. php语言实现的7种基本的排序方法

    今天总结了一下常用的7种排序方法,并用php语言实现. 直接插入排序 /* * 直接插入排序,插入排序的思想是:当前插入位置之前的元素有序, * 若插入当前位置的元素比有序元素最后一个元素大,则什么也 ...

  3. Java几种常见的排序方法

    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一 ...

  4. 几种常见的排序方法总结(Python)

    几种常见的排序算法总结(Python) 排序算法:是一种能将一串数据依照特定顺序进行排序的一种算法. 稳定性:稳定排序算法会让原本有相等键值的记录维持相对次序.也就是如果一个排序算法是稳定的,当有两个 ...

  5. 比较两种数组随机排序方法的效率 JavaScript版

    //比较2中数组随机排序方法的效率 JavaScript版 //randon1思路 //当len=5时候,从0-5中随机3一个放入i=0, // 从0-3随机一个2放入i=2 // 从0-2随机一个1 ...

  6. 几种常见的排序方法(C语言实现)

    #include <stdio.h> #include <stdlib.h> #include <Windows.h> //直接插入排序 void InsertSo ...

  7. C# 几种常见的排序方法

    1.冒泡排序 //冒泡排序 public void BubbleSort(int[] list) { int i, j, temp; bool done = false; j = ; while (( ...

  8. 一种比较高级的方法也可以修改windows为默认启动系统

    运行: sudo mv /etc/grub.d/30_os-prober /etc/grub.d/06_os-probersudo update-grub

  9. 【高级排序算法】1、归并排序法 - Merge Sort

    归并排序法 - Merge Sort 文章目录 归并排序法 - Merge Sort nlogn 比 n^2 快多少? 归并排序设计思想 时间.空间复杂度 归并排序图解 归并排序描述 归并排序小结 参 ...

随机推荐

  1. my.cnf 配置文件参数解释

    my.cnf 配置文件参数解释: #*** client options 相关选项 ***# #以下选项会被MySQL客户端应用读取.注意只有MySQL附带的客户端应用程序保证可以读取这段内容.如果你 ...

  2. vld,Bounds Checker,memwatch,mtrace,valgrind,debug_new几种内存泄露检测工具的比较,Valgrind Cheatsheet

    概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的.复杂的应用程序中,内存泄漏是常见的问题.当以前分配的一片内存不再需要使用或无法访问时,但是却 ...

  3. 简明python教程 --C++程序员的视角(七):异常

    当你的程序中出现某些 异常的 状况的时候,异常就发生了.例如,当你想要读某个文件的时候,而那个文件不存在.或者在程序运行的时候,你不小心把它删除了.上述这些情况可以使用异常来处理. 假如你的程序中有一 ...

  4. 学习笔记:AC自动机

    话说AC自动机有什么用......我想要自动AC机 AC自动机简介:  首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配 ...

  5. C++:友元运算符重载函数

    运算符重载函数:实现对象之间进行算数运算,(实际上是对象的属性之间做运算),包括+(加号).-(减号).*./.=.++.--.-(负号).+(正号) 运算符重载函数分为:普通友元运算符重载函数.成员 ...

  6. oralce sql 分页

    create table student ( sid varchar2(10), --学号 sname varchar2(10), --姓名 classid varchar2(10), --班级号 s ...

  7. Vulkan --vulkan in powervr

    zhankeng 跨平台 多线程 low cpu overhead object orientated vulkan有利于tile based的地方 明确依赖声明 细粒度同步 render passe ...

  8. Android中Dialog对话框的调用及监听

    Android中经常会需要在Android界面上弹出一些对话框提示用户,比如App的退出的时候都会有各种框来挽留你的心,支付宝的时候输入密码的密码框,非常常见及其实用的功能,类似于JS中的alter, ...

  9. Facade 门面模式 封装 MD

    门面模式 简介 作用:封装系统功能,简化系统调用 门面模式要求一个系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行.门面模式提供一个高层次的接口,使得系统更易于使用. 门面模式的 ...

  10. [LeetCode] Distinct Subsequences [29]

    题目 Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequen ...