【每日算法】插入排序&选择排序&冒泡排序
2017-07-23 16:47
155 查看
//插入排序思路:摸牌过程 ,插入排序是稳定的,时间复杂度为 O(n^2)
void insertsort(int arr[], int length) { if (arr = NULL || length <= 0) return; for (int i = 1; i < length; i++) { int key = arr[i];//待插入的元素 int j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } } //选择排序思路:从第一个开始,和它后面的所有元素逐一比较,如果有比它小的就交换过来,不稳定,时间复杂度也为O(n^2) void selectsort(int arr[], int length) { if (arr == NULL || length <= 0) return; for (int i = 0; i < length; i++) { for (int j = i+1; j < length; j++) { if (arr[i]>arr[j]) exchange(arr[i], arr[j]); } } } //冒泡排序思路:假设竖着排列,那么每一趟把轻的气泡先冒到顶端,每一趟比较的元素会逐步减少,稳定,时间复杂度为O(n^2) void bubblesort(int arr[], int length) { if (arr = NULL || length <= 0) return; for (int i = 0; i < length; i++) { for (int j = 0; j < n - i; j++) { if (a[j]<a[j + 1]) exchange(a[j], a[j + 1]); } } }
相关文章推荐
- 每日一个小算法-冒泡排序
- 每日算法: 选择排序,冒泡排序
- <每日一算法>冒泡排序
- 【每日算法】交换排序算法之冒泡排序
- 【算法】排序 (一):插入排序&希尔排序&选择排序&堆排序(C++实现)
- 每日一算法之冒泡排序原理及实现
- 【每日算法】插入&选择&冒泡排序
- 算法--插入选择冒泡排序
- 经典算法题每日演练——第七题 KMP算法
- 经典算法题每日演练——第二十二题 奇偶排序
- 算法 - 排序 - 冒泡排序
- 经典算法题每日演练——第一题 百钱买百鸡
- 简单排序算法:冒泡排序(交换排序)
- 算法每日一题:1、猜数
- 算法-冒泡排序
- 算法每日题Hamming distance
- 【每日算法】计数排序算法
- 白话经典算法系列之中的一个 冒泡排序的三种实现
- 算法-冒泡排序
- 经典算法题每日演练——第八题 AC自动机