冒泡排序
void BubbleSort(int *p, int length)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10 - i - 1; j++)
{
if (p[j] > p[j + 1])
{
swap(p[j], p[j + 1]);
}
}
}
}
选择排序
void SelectSort(int* arr, int n) //arr为数据数组,n为数组长度
{
for (int i = 0; i < n - 1; i++)
{
int nMin = i;
for (int j = i; j < n; j++)
{
if (arr[nMin] > arr[j])
{
nMin = j;
}
}
if (nMin != i)
{
swap(arr[i], arr[nMin]);
}
}
}
插入排序
void insertSort(int a[], int length)
{
for (int i = 1; i < length; i++)
{
for (int j = i - 1; j >= 0 && a[j + 1] < a[j]; j--)
{
swap(a[j], a[j + 1]);
}
}
}
快速排序
//定义getStandard
int getStandard(int a[], int i, int j)
{
int key = a[i];//关键值
//当i<j时候执行后面语句
while (i < j)
{
//当后面的元素大于等于关键值时,一直往前挪动j
while (i < j && a[i] >= key)
{
j--;
}
if (i < j)
{
a[i] = a[j];
}
//当前面元素小于等于关键值时,一直向后挪动i
while (i < j&&a[i] <= key)
{
i++;
}
if (i < j)
{
a[j] = a[i];
}
}
a[i] = key;
return i;
}
//定义无返回值QuickSort
void QuickSort(int a[], int low, int top)
{
if (low < top)
{
int standard = getStandard(a, low, top);
//递归调用
QuickSort(a, low, standard - 1);
QuickSort(a, standard + 1, top);
}
}
二分查找
//声明一个函数,里面有数组,数字个数和关键值
int BinarySearch(int array[], int n, int key)
{
int low = 0, top = n - 1;
int mid = 0;
//定义一个while循环,当low<=top时,执行后面内容
while (low<=top)
{
mid = (low + top) / 2;
if (array[mid]==key)
{
return mid;
}
if (array[mid]<key)
{
low = mid + 1;
}
else
{
top = mid - 1;
}
}
return -1;
}