void swap(int *a,int*b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void quicksort(int arr[],int left,int right) //快速排序
{
if (left>right)
{
return;
}
int temp = arr[left];
int i = left;
int j = right;
while (i<j)
{
while (arr[j]>=temp)
{
if (j <=i)
{
break;
}
j--;
}
while (arr[i]<=temp)
{
if (i>=j)
{
break;
}
i++;
}
if (i < j)
{
swap(&arr[i], &arr[j]);
}
}
swap(&arr[left], &arr[i]);
quicksort(arr, left, i - 1);
quicksort(arr, i + 1, right);
}
void babblesort(int arr[],int length) //冒泡排序
{
for (int i = 0; i < length - 1;i++)
{
for (int j = i; j < length-1;j++)
{
if (arr[j]>arr[j+1])
{
swap(&arr[j], &arr[j + 1]);
}
}
}
}
//二分查找
int binaryFind(int arr[],int left,int right,int key)
{
if (left>right)
{
return -1;
}
int mid = (left + right) / 2;
if (arr[mid]==key)
{
return mid;
}
if (arr[mid]>key)
{
return binaryFind(arr, left, mid-1, key);
}
else
{
return binaryFind(arr, mid+1, right, key);
}
}
//插入排序
void insertsort(int arr[],int length)
{
for (int i = 1; i < length;i++)
{
int temp = arr[i];;
int j = i - 1;
for ( j = i-1; j >=0;j--)
{
if (arr[j] >= temp)
{
arr[j + 1] = arr[j];//right shift
}
else
{
break;
}
}
arr[j + 1] = temp;
}
}