Contents
  1. 1. 插入排序

插入排序

  • 可以联想下是怎么玩扑克牌的,就知道是怎么插入的了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

#include<stdio.h>
int main()
{

int a[5]={5,4,1,3,2},i,j,t;
int n=5;
for(i=1;i<n;i++) //i从数组中的第2个数开始
{
t=a[i]; //把要插的元素先记住
for(j=i-1;j>=0&&a[j]>t;j--)
a[j+1]=a[j];
a[j+1]=t; //这句话之前,先进行了一次j--,所以是a[j+1]
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

//例如: 5,4,1,3,2 先从4开始,注意:往前面找,比他大的放后面, 4,5,1,3,2,
然后 1,4,5,3,2 1,3,4,5,2 1,2,3,4,5


//////////////////////
//从大到小

#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cstring>

int main()
{

int a[100];
int i, n, j;
scanf("%d", &n);
for(i = 0 ; i < n; i++)
scanf("%d", &a[i]);
for(i = 1; i < n; i++){
int t = a[i];
for(j = i - 1; j >= 0 && a[j] < t; j--)
a[j + 1] = a[j];
a[j + 1] = t;
}
for(i = 0; i < n; i++)
printf("%d ", a[i]);
return 0;
}
Contents
  1. 1. 插入排序