-
八种基本的排序(1)——冒泡排序(C语言实现)
八种基本的排序(2)——直接选择排序(C语言实现)
八种基本的排序(3)——插入排序(C语言实现)
八种基本的排序(4)——归并排序(C语言实现)
八种基本的排序(5)——快速排序(C语言实现)
目录
-八种基本的排序(1)——冒泡排序(C语言实现)八种基本的排序(2)——直接选择排序(C语言实现)八种基本的排序(3)——插入排序(C语言实现)八种基本的排序(4)——归并排序(C语言实现)八种基本的排序(5)——快速排序(C语言实现) 目录直接插入排序(Insertion sorting)基本思想原理源代码
函数版普通版 >>>我的博客a1(n−1),a2(n−1),…,an(n−1)a1(n−1),a2(n−1),…,an(n−1) 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。 假设在一个无序的数组中,要将该数组中的数按插入排序的方法从小到大排序。假设
a[]=3,5,2,1,4
a
[
]
=
3
,
5
,
2
,
1
,
4
;插入排序的思想就是比大小,满足条件交换位置,一开始会像冒泡排序一样,但会比冒泡多一步就是交换后(
a[i]
a
[
i
]
=
a[i+1]
a
[
i
+
1
]
后)原位置(
a[i]
a
[
i
]
)会继续和前面的数比较满足条件交换,直到
a[i+1]
a
[
i
+
1
]
前面的数组是有序的。比如在第二次比较后数组变成
a[]=2,3,5,1,4
a
[
]
=
2
,
3
,
5
,
1
,
4
;
下面就是源代码了
源代码
函数版
//插入排序(从小到大)
#include
int number[100000000]; //在外面定义数组
void insertion_sort(int *number,int n) //定义一个插入函数"insertion_sort"
{
int i=0,ii=0,temp=0;
for(i=1;i=0&&temp |