排序算法---插入排序
来源:互联网 发布:淘宝店铺代销发货地址 编辑:程序博客网 时间:2024/04/27 17:25
基本思路:
将待排序的数一个个的顺序的插入到已经排好序的数组中。
则生成的新的序列也是已经拍好许的序列。
问题:
插入到已拍好的序列中? 一开始就是没有顺序的数组,如何插入?
的确一开始 数组就没有顺序,但是如果这样划分呢,
例:
int a[]=
{
0,59,48,75,98,86,23,37,60
};
一开始数组无序。
但是自看第一个数 a[ 1 ] ,就无所谓 什么有序与无序了。]
然后后面的数字一次按照排序要求(升序或降序)插入。
即: 48 > 59 则48 需要插入在59 的前面,得:
48,59,23,98,86,75,37,60
然后在插入 23 < 48 则插在48 前面得:
23,48,59,98,86,75,37,60
后面插入的思路是一样,如果当前数字不需要插入,即当前位置是正好的顺序,则直接跳到下一个数字。
将待排序的数一个个的顺序的插入到已经排好序的数组中。
则生成的新的序列也是已经拍好许的序列。
问题:
插入到已拍好的序列中? 一开始就是没有顺序的数组,如何插入?
的确一开始 数组就没有顺序,但是如果这样划分呢,
例:
int a[]=
{
0,59,48,75,98,86,23,37,60
};
一开始数组无序。
但是自看第一个数 a[ 1 ] ,就无所谓 什么有序与无序了。]
然后后面的数字一次按照排序要求(升序或降序)插入。
即: 48 > 59 则48 需要插入在59 的前面,得:
48,59,23,98,86,75,37,60
然后在插入 23 < 48 则插在48 前面得:
23,48,59,98,86,75,37,60
后面插入的思路是一样,如果当前数字不需要插入,即当前位置是正好的顺序,则直接跳到下一个数字。
下面是c 语言实现:
#include <stdio.h>void insertSort(int a[] ,int n){ int i,j; for (i = 2 ;i<n ;i++) { a[0] = a[i]; j = i - 1; while (a[0] < a[j])//往后移 { a[j+1] = a[j]; j--; } a[j+1] = a[0];//确定正确位置后 插入 }}void print(int a[] ,int n){ for (int i = 1;i<n;i++) { printf("%d ",a[i]); } printf("\n");}int main(int argc, char *argv[]){ // a[0] 这个位置用于放置 哨兵//所以在排序时 排的是a[0] 后面 int a[]= { 0,59,48,75,98,86,23,37,60 }; print(a,9); insertSort(a,9); print(a,9); return 0;}
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法---插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法---插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 排序算法-插入排序
- 排序算法--插入排序
- 排序算法-插入排序
- 杭电2019
- ubuntu右键添加打开终端的快捷菜单
- C#实现RSA加密解密
- LeetCode —— Edit Distance
- hdu 2426 Interesting Housing Problem (KM)
- 排序算法---插入排序
- CSS整站变灰色,纪念灾害
- 杭电2020
- UVa 572 Oil Deposit (DFS)
- poj 1651
- hdu2767强连通+缩点 如果让我说:我只能说,实力决定一切
- OpenCV2.4.5+VS2010配置
- Mongodb应用实战教程:windows下安装与安全策略配置
- 杭电2021