C语言是学习计算机基础,暑假一直在学Java,开学了数据结构上机,老师让编一个实现N个整数排序,
并插入一个整数的小程序,可是我整节课都没搞定。郁闷了许久,觉得自己太过舍本逐末了,基础都忘光了。
咳~~~~于是一阵恶补。好好看了看排序,总结及源码如下:
冒泡排序:
<!---->#include "stdio.h"
main()
{
int i,j,temp,s;
int a[10];
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
printf("冒泡排序后的数列为:");
for(i=0;i<10;i++)
printf("%3d",a[i] );
printf("\n");
scanf("%d",&s);//防止运行窗口迅速关闭
}
选择排序:
Code
<!---->#include "stdio.h"
void main()
{
int a[10];
int i,j,t,s;
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=9;i>j;i--)
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
printf("选择排序后的数列为:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
scanf("%d",&s);//同上
}
实现N个整数排序,并插入一个整数源码:
<!---->#include <stdio.h>
main(){
int n;
int a[100];
int i,j,k,t,x,s;
printf("输入数列长度:\n");
scanf("%d",&n);
printf("请输入%d个整数:\n",n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){// 排序
k=i;
for(j=i;j<n-1;j++){
if(a[k]>a[j+1]){
k=j+1;
}
}
if(k!=i){
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
printf("\n");
printf("排序后的数列:\n");
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("请输入要插入的数:");
scanf("%d",&x);
for(i=0;i<n;i++){
if(x>a[i]&&x<a[i+1]){
k=i+1;
break;
}
}
for(i=n;i>k;i--){
a[i]=a[i-1];
}
a[k]=x;
printf("插入%d后的排序数列为:",x);
for(i=0;i<=n;i++){
printf("%d ",a[i]);
}
scanf("%d",s); //同上
}
全部代码都测试通过,正确无误!
施杨出品!!!
分享到:
相关推荐
经典的插入排序算法,C语言实现,数据结构必备
c语言实现三种排序算法(冒泡,插入,快速)
2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。 3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入...
快速排序 C语言实现 快速排序 C语言实现 快速排序 C语言实现
经典C语言排序算法,其中包括三种典型号的排序算法,冒泡排序,选择排序,插入法排序,并有实例.
C语言程序设计-排序算法:理解和重点掌握选择法排序、冒泡法排序、插入法排序的思想 ⑴编写程序,对n个整数用冒泡法排序(从小到大或从大到小); ⑵编写程序,对n个整数用选择法排序(从小到大或从大到小); ⑶...
使用插入排序算法对输入的n个整数,按照从小到大的顺序排序。 Input Description 第一行输入一个整数n(0<n)。 第二行输入n个整数。 Output Description 输出排序后的整数,每个整数之间以一个空格分隔。注意:...
主要介绍了C++实现选择排序、直接插入排序、冒泡排序的代码示例,相当简洁直观,也是算法和数据结构学习中的基础,需要的朋友可以参考下
1) 分别采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序,实现这批数据的排序,并把排序后的结果保存在不同的文件中。 2) 统计每一种排序方法的性能(以上机运行程序所花费的时间...
一、查找 1. 算法设计题 :已知n元顺序表a0, a1, … , an-1按关键字...提示:对于C语言32bit宽的unsigned类型,可以采用16进制形式来实现基数排序,即32bit共有8个16进制位,每个16进制位进行一趟分配和收集,共8趟。
课程实验数据结果,C语言实现快排归并插入大顶堆。 内含5W-50W随机生成整数每隔5W数据量排序一次的时间记录,并对其进行了均值和方差的比较。
数据结构的所有排序,源代码,改变MAX值可以改变随机数的多少。花了一下午写出来的,清大家多多支持。一个文件,解决你课后一个下午的时间。
利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且 (1) 统计每一种排序上机所花费的时间。 (2) 统计在完全正序,完全逆序情况下记录的比较...
c语言实现的快速排序算法,及其一步步优化代码(1. 数组长度较小时候选择插入排序;2. 主元在数组最左最右,中间三个数字中间选择中间大小的, 数组拆分后将 重复数字挪到主元附近,不进行重复partition)
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: 1) 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并...
c语言的各种排序实现方法以及详细的注释比如 快速排序 归并排序 简单排序 插入排序等等
以下算法均用C语言实现,代码可运行 老掉牙 河内塔 费式数列 巴斯卡三角形 三色棋 老鼠走迷官(一) 老鼠走迷官(二) 骑士走棋盘 八个皇后 八枚银币 生命游戏 字串核对 双色、三色河内塔 背包问题...
2、输出直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序算法每一趟排序的结果,观察关键字次序的变化。 3、如果上述8个整数按照升序输入,即k1={ 2 , 12 , 12 , 21 , 30 , 33 , 45 ,...
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2重复上述的分组和排序,直至所取的增量dt=1(dt…...
功能介绍: 该程序是实现整数排序的程序,通过随机函数产生20000以上的整数,分别用(1)直接插入排序(2)冒泡排序(3)快速排序(4)直接选择排序(5)堆排序(6)希尔排序,六种方法来排序