二分查找:又称折半查找。基本思想:前提条件是待查找集合有序,首先将待查值与中间元素比较,若相等,则找到;若小于中间元素,则后续查找在左半区间查找,否则在右半区间查找。需要连续存储,时间复杂度是O(logn).点击(此处)折叠或打开int binary_search(int a[], int size, int value.........【阅读全文】
选择排序:基本思想:假设待排序集合有n个元素,需要进行n-1趟排序,每次排序从未排序集合中选出最小的元素,加入到已排序集合末尾。时间复杂度为O(n*n),空间复杂度为O(1)。支持数组或链表。点击(此处)折叠或打开void selection_sort(int a[], int n){ .........【阅读全文】
冒泡排序基本思想:交换排序的一种,对待排序元素两两比较,如果顺序不一致,则交换元素,一趟排序好,最小元素就位。然后对剩余元素重复这个过程,直到全部元素就绪。可以通过设置交换标志进行优化,避免多余的交换过程。点击(此处)折叠或打开inline int swap(int *a, int *b){.........【阅读全文】