插入排序总结
来源:互联网 发布:免费cf手游刷枪软件 编辑:程序博客网 时间:2024/06/08 12:36
简单插入排序:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>using namespace std;int main (void) {int i, j;int arr[100];int num;while (scanf ("%d", &num) != EOF) {for (i = 1;i <= num;i++) {scanf ("%d", &arr[i]);}for (i = 2;i <= num;i++) {if (arr[i] < arr[i-1]) {arr[0] = arr[i];for (j = i-1;arr[j] > arr[0];j--) {arr[j+1] = arr[j];}arr[j+1] = arr[0];}}for (i = 1;i <= num;i++) {printf ("%d ", arr[i]);}printf ("\n");}return 0;}
二分插入排序:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>using namespace std;int main (void) {int i, j;int num;int arr[100];while (scanf ("%d", &num) != EOF) {for (i = 1;i <= num;i++) {scanf ("%d", &arr[i]);}for (i = 2;i <= num;i++) {int low = 1;int high = i-1;arr[0] = arr[i];int m;while (low <= high) {m = (low + high) /2;if (arr[m] > arr[0]) {high = m-1;}else {low = m+1;}}for (j = i-1;j >= high+1;j--) {arr[j+1] = arr[j];}arr[j+1] = arr[0];}for (i = 1;i <= num;i++) {printf ("%d ", arr[i]);}printf ("\n");}return 0;}
二路插入排序:
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>using namespace std;int main(void) {int num;int i, j;int arr[5];while (scanf("%d", &num) != EOF) {for (i = 1; i <= num; i++) {scanf("%d", &arr[i]);}int first = 0;int final = 0;int *p = (int*)malloc(sizeof (int)* num);p[first] = arr[1];for (i = 2; i <= num; i++) {if (arr[i] > p[final]) {p[++final] = arr[i];}else if (arr[i] < p[first]) {first = (first - 1 + num) % num;p[first] = arr[i];}else {for (j = final; arr[i] < p[j]; j = ((j + num) % num) - 1) {p[j + 1] = p[j];}p[j + 1] = arr[i];final++;}}for (i = 0; i < num; i++) {arr[i + 1] = p[(first + i + num) % num];}for (i = 1; i <= num; i++) {printf("%d ", arr[i]);}printf("\n");}return 0;}
0 0
- 排序总结---插入排序
- 一般插入排序总结
- 【排序总结--插入、快速】
- 插入排序总结
- 插入排序总结
- 插入排序总结
- 插入排序总结
- 总结--插入排序
- 【冒泡排序、选择排序、插入排序总结】
- 选择排序、插入排序、希尔排序总结
- 冒泡排序、选择排序、插入排序总结
- iOS算法总结-插入排序
- 内部排序总结(一)插入排序
- 排序算法总结——插入排序
- 排序算法总结3-插入排序
- 排序算法总结(三)插入排序
- 排序总结之插入式排序
- 排序算法总结之直接插入排序
- 程序员应有素质
- ios自定义构造方法
- 浅析C#中的事件
- 机房收费系统验收之思想无价
- swift中字符串截取方法(substring)
- 插入排序总结
- 【ActionBar】Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- 如何搭建二维码支付系统?
- axis2 webService项目 客户端生成方法
- 使用电脑远程调试安卓手机上浏览器的JS
- 招人不易留人更难——创业团队要闯哪些关?
- Memcached之客户端-xmemcached(5)
- 二分图算法 知识点详解
- 机房收费系统——起步阶段需要做的工作,怎么附加数据库?怎么注册控件?