网站首页 > 开源技术 正文
这两天研究编程的一些算法,就是排序算法,就是插入排序法。我从资料中看到了一个程序。以前我用编程猫给做出来了,而且运行效果还可以。今天我想用Scratch给他做出来,我发现这个Scratch没有退出循环这个命令,所以那个程序不能用,就从网上再找了一个,这个也是c语言写的。现在我要把这个c语言给转化成图形化编程。今天下午费了半天的劲,算是把这个给弄出来了。前面的那个是用c语言给转化成了编程猫的图形化编程程序的,后面的是用scratch编写的图形化编程程序。下面列出来的是第一个和第二个c语言的程序。图形化编程的我就截图给大家看看。
public static void sort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int value = arr[i];
int j = 0;//插入的位置
for (j = i-1; j >= 0; j--) {
if (arr[j] > value) {
arr[j+1] = arr[j];//移动数据
} else {
break;
}
}
arr[j+1] = value; //插入数据 }
}
这是第一个c语言程序。
因为这里面有退出循环就是break。Scratch里面没有break,所以这个程序不能用。我就只好又找了一个这样的程序。
#include<stdio.h>
void Print(int array[],int len){
for(int i=0;i<len;i++){
printf("%d ",array[i]);
}
printf("\n");
}
/*直接插入排序*/
/*
*算法描述:
*1.将待排序序列分为两部分,一部分有序一部分无序
*2.第一个元素为有序序列,从第二个元素到最后为无序序列
*3.将无序序列中每一个元素依次插入到有序序列的合适位置--从小到大(从大到小)
*合适的位置:待排序元素大于或等于(小于)该元素
*/
void InsertSort(int array[],int len){
int i,j;
//第一个for循环 遍历无序序列
for(i=1;i<len;i++){ //从数组的第二个元素开始依次遍历无序序列
int tem = array[i]; //临时保存将要排序的元素
//第二个for循环遍历有序序列
for(j=i-1;tem<=array[j]&&j>=0;j--){ //将待排序元素依次和有序序列中的元素比较
//待排序元素 小于 有序序列中当前元素时 将该元素后移
array[j+1] = array[j];
}
array[j+1] = tem; //待排序元素 大于 有序序列最后一个元素 直接将该元素插入到有序序列最后
}
printf("\n排序完成!\n\n");
}
main(){
int array[10] = {4,3,10,5,6,7,1,2,8,9} ;
int len = sizeof(array) / sizeof(int);
printf("初始序列:\n");
Print(array,len);
InsertSort(array,len);
printf("排序后序列:\n");
Print(array,len);
这个是他c语言程序运行的结果。
这个呢是我编写的scratch图形化编程程序截图。
程序都已经运行过了,是正常的。
猜你喜欢
- 2025-07-01 有了一台云服务器,不仅可以写C语言程序,还能搭建自己的网站
- 2025-07-01 单片机c语言基础知识,c语言必背100代码有哪些?
- 2025-07-01 史上最经典的10个C语言开源项目,适合C语言实战能力加强
- 2025-07-01 C语言程序设计100例[21-40](c语言程序设计(修订版))
- 2025-07-01 嵌入式C语言基础编程——5年程序员给你讲解程序设计之三种结构
- 2025-07-01 C/C++|头文件、源文件分开写的源起及作用
- 2025-07-01 嵌入式程序开发,C语言和C++究竟应该用哪个?
- 2025-07-01 C语言程序的基本单位是什么,为何会是这个
- 2025-07-01 初识C语言:简介、环境搭建、第一个HelloWorld
你 发表评论:
欢迎- 最近发表
-
- Shell脚本编程入门:轻松掌握自动化利器
- 告别代码恐惧症!豆包推出可视化AI编程,拖拽即可创建网页应用
- 星空外挂出程序单设置_启根教育(星空外挂excel通用程序单改三视图)
- PLC编程中的IF语句:从基础到高级的全面指南(附源码例程)
- 过程测量与控制仪表的功能标志及图形符号
- 西门子PLC编程基本指令汇总(西门子plc编程指令教学)
- 仪创Web门禁控制器:RESTful API标志门禁进入"可编程智能硬件"时代
- Python初体验:从入门到实践(python入门操作)
- Linux系统编程之进程基础知识(linux进程常用命令)
- [西门子PLC] 西门子1200 、200smart、 LOGO! 实现S7通讯演示功能
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)