————itwai 2019.2.2
下面写一写收获吧,今天看了排序问题,总结一下
选择排序,
关键的两点是
- 运行时间和输出无关
- 数据移动是最小的
下面是我自己的c语言代码
#include<stdio.h>
int main()
{
int nem;
int ch[100];
for(int i = 0; i < 10; i++)//大小可以用宏定义来改变(这里说的是10)
{
scanf(" %d", &ch[i]);
}
for(int i = 0; i < 10; i++)
{
nem = ch[i];
for(int j = 0;j < 10; j++)
{
if(nem < ch[j])
{
nem = ch[j];
ch[j] = ch[i];
ch[i] = nem;
}
}
}
for(int i = 0; i < 10; i++)
printf("%d ",ch[i]);
return 0;
}
下面是插入排序
插入排序可以理解为打扑克时候整理牌的样子
就是把排好序的放在索引的前面,当索引和数组最大相同时,就排序结束
#include<stdio.h>
int main()
{
int pp = 0,nem = 0;
int ch[100];
for(int i = 0; i < 10; i++)
{
scanf(" %d", &ch[i]);
}
for(int i = 1; i < 10; i++)
{
pp = i - 1;
nem = ch[i];
while(pp >= 0 && nem < ch[pp])
{
ch[pp+1] = ch[pp];
pp--;
}
ch[pp+1] = nem;
}
for(int i = 0; i < 10; i++)
printf("%d ",ch[i]);
return 0;
}
这是插入排序的算法哦
今天先看这两个,我会继续看大算法书的,加油
有什么问题可以一起分享啊!!!