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 快多少? 归并排序设计思想 时间.空间复杂度 归并排序图解 归并排序描述 归并排序小结 参 ...
随机推荐
- Windows Server 2003 IIS设置完全篇
一.启用Asp支持Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装.安装完 IIS 6,还需要单独开启对于 ASP 的支持. 第一步,启用Asp,进入:控制面板 ...
- python opencv 人脸识别
def findface(image): import cv2 frame=cv2.imread('n1.jpg') classifier=cv2.CascadeClassifier("h ...
- Hashing图像检索源码及数据库总结
下面的这份哈希算法小结来源于本周的周报,原本并没有打算要贴出来的,不过,考虑到这些资源属于关注利用哈希算法进行大规模图像搜索的各位看官应该很有用,所以好东西本小子就不私藏了.本资源汇总最主要的收录原则 ...
- DataTable怎么判断一列是否为主键?
在普通情况下,我们使用SqlDataAdapter来Fill填充DataTable,如果使用下列代码我们是不能拿到主键列的: dataadapter.Fill(Table); DataColumn[] ...
- 比较windows phone 的回退事件与android的回退事件
public void onBackPressed() { finish(); } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化 ...
- Go常用功能总结一阶段
1. go语言从键盘获取输入内容 <1. 最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数.请看以下程序: package main import "fmt& ...
- PreferenceScreen的应用
PreferenceScreen preference是偏好.首选的意思,PreferenceScreen个人翻译成 "偏好显示",明确这个意思就好.就是说依据特点灵活的定义显示内 ...
- 实战:INNOBACKUPEX for mysql 5.6自己主动还原脚本-v2
脚本再次更新,共享一下! #!/bin/sh # # 用法: # ./restore.sh /你备份文件的全路径 #ocpyang@126.com INNOBACKUPEX=innobackupex ...
- PHP OAuth 2.0 Server
PHP OAuth 2.0 Server PHP OAuth 2.0 Server ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ ...
- iOS 怎样更新APP
app更新的流程思想 得到当前版本currentVersion,将currentVersion与近期的版本latestVersion进行比較,若当前currentVersion较小.进行更新操作. 获 ...