简单插入:
void insertSort(int[] list)
{
for (int i = 1; i < list.length; i++)
{
int temp = list[i];
for (int j = i - 1; j >= 0 && temp < list[j]; j--)
{
list[j + 1] = list[j];
}
list[j + 1] = temp;
}
}
shell排序:
void shellSort(int* array,int len)
{
for(int gap=len/2;gap>0;gap=gap/2)
{
for(int i=gap;i<len;i++)
{
int value=array[i];
for(int j=i-gap;j>=0&&array[j]>value;j-=gap)
{
array[j+gap]=array[j];
}
array[j+gap]=value;
}
}
}
冒泡排序:
void bubble_sort(T arr[], int len)
{
int T temp;
for (int i = 0; i < len - 1; i++)
for (int j = 0; j < len - 1 - i; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
快速排序:
void Qsort(int a[], int low, int high)
{
if(low >= high)
{
return;
}
int first = low;
int last = high;
int key = a[first];
while(first < last)
{
while(first < last && a[last] >= key)
{
--last;
}
a[first] = a[last];
while(first < last && a[first] <= key)
{
++first;
}
a[last] = a[first];
}
a[first] = key;
Qsort(a, low, first-1);
Qsort(a, first+1, high);
}
简单选择排序:
void selectSort(vector<int>a)
{
int len=a.size();
int b=0;
for(int i=0;i<len-1;i++)
{
int temp=i;
for(int j=i+1;j<len;j++)
if(a[temp]>a[j])
temp=j;
if(i!=temp)
{
b=a[temp];
a[temp]=a[i];
a[i]=b;
}
}
}