插入排序和选择排序
来源:互联网 发布:淘宝用绒里图片 编辑:程序博客网 时间:2024/05/01 11:19
插入排序用算法导论里面的描述:
开始摸牌时,我们左手是空的,牌面朝下放在桌子上。接着,一次从桌子上摸起一张牌,并且将它插入到左手的得正确位置上,为了找到这个牌的正确位置,我们必须将它从左到右依次和左手上的牌比较,然后插入,左手上的牌每次都是有序的。
伪代码:
INSERTON-SORT(A){
for j = 2 to j = A的长度{
do key = A[j];
i = j-1;
while(i > 0 && A[i] > key)
i = i-1;
A[i+1] = key;
}
//c语言代码
void InsertSort(int *a, int n){int i = 0;int j = 0;int key;for(j = 1; j < n; j++){key = a[j];i = j-1;while(i>= 0 && key < a[i]){a[i+1] = a[i];i--;}a[i+1] = key;}}
可以理解成为从一个中取出一个数,插入到一个有序的数组中去。
选择排序:
1.首先找出数组A的最小元素,并和第一个元素交换
2.找出数组中次小的元素,和第二个交换
3.依次类推,对A中n-1个元素中持续这个过程
void selSort(int *a, int len){int i, j;int min, k;for(i = 0; i < len-1; i++){min = i;//min = a[i];交换的是下标,因为是数组中的交换for(j = i+1; j < len; j++){if(a[min] > a[j]){min = j;//记录最小值的下标}}if(a[min] != a[i]){//和第i个交换k = a[min];a[min] = a[i];a[i] = k;}}}
1 0
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择和插入排序
- 冒泡排序 选择排序和插入排序
- 冒泡排序、插入排序和选择排序
- 冒泡排序和插入排序,选择排序
- 插入排序,选择排序和快速排序
- Storm——2、Storm原生API编程、并发机制、可靠性与DRPC详解
- 解决vim没有颜色的办法
- 【NOIP2017提高组模拟12.10】幻魔皇
- 直接排序,冒泡排序,二分法排序(折半排序)
- HTC 拉抽屉效果(VRTK)
- 插入排序和选择排序
- java中数组和集合的相互转换
- JavaWeb_使用Servlet + HttpSession实现简单用户登陆
- 自定义控件其实很简单1/4
- 51Nod 1414 冰雕
- UIButton根据色值在不同状态的显示不同背景色
- codeforces 707B -- Bakery 贪心
- Redis源码解析——Zipmap
- Android开发之多线程编程Thread和Runnable使用