冒泡排序
- 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;
- }
-