八大排序算法(二) 折半插入排序
来源:互联网 发布:妈富隆 欣妈富隆 知乎 编辑:程序博客网 时间:2024/05/21 23:32
#include <stdio.h>#include <time.h>#include <stdlib.h>#define SIZE 10int n[SIZE];void init(int n[], int len){ int i; srand((unsigned)time(NULL)); for (i=0; i<len; i++){ n[i] = rand()%10+1; }}void printout(int n[], int len){ int i; for (i=0; i<len; i++){ printf("%d ", n[i]); } printf("\n");}void BinaryInsertionSort(int n[], int len){ int i, k ,r; int temp; for (i=1; i<len; i++){ temp = n[i]; // 把前后两个边界相互固定 k = 0; r = i-1; // 开始寻找 while (k <= r){ int m; m = (k+r)/2; if (temp < n[m]) r = m - 1; else k = m + 1; } /* 找到要被插入的位置, 注意: 找到K, 要移动的位置是i . 此处的i 为要被插入的位置,固无用 */ for (r=i; r>k; r--) n[r] = n[r-1]; n[k] = temp; // printout(n, SIZE); }}int main(){ init(n, SIZE); printout(n, SIZE); BinaryInsertionSort(n, SIZE); printout(n, SIZE); return 0;}
运行图:
0 0
- 八大排序算法(二) 折半插入排序
- 八大排序算法之(三)插入排序 折半插入排序
- 八大排序算法之(二)插入排序 希尔排序
- 排序算法之二 折半插入排序
- 折半插入排序法---排序算法(二)
- 排序算法二:二分(折半)插入排序
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 折半插入排序算法
- 八大排序算法(1) 插入排序
- 排序算法_C++(二)插入排序之折半插入排序
- 排序算法------折半插入排序
- 【排序算法】折半插入排序
- 【排序算法】折半插入排序
- 八大种必知排序算法(二) 选择排序,插入排序,希尔算法(续)
- 行为识别笔记:improved dense trajectories算法(iDT算法)
- cocos 3.x 创建新工程的命令
- Linux内核中的Kconfig、Makefile、.config
- Scrapy ——如何防止被ban 屏蔽 之策略大集合(六)
- android沉浸式状态栏(像iOS一样的状态栏)
- 八大排序算法(二) 折半插入排序
- 本人博客开启的第一天【刚开始学习图像算法】
- UVa247 Calling Circles
- Spring boot 专栏博客
- java单例模式
- android studio引入ButterKnife框架
- 向量的模和范数
- Linux自动备份mysql文件并且远程获取文件备份
- 2016 年 7 个最佳的 Java 框架