插入排序法的两种C语言和图形化编程的的程序

插入排序法的两种C语言和图形化编程的的程序这两天研究编程的一些算法 就是排序算法 就是插入排序法 我从资料中看到了一个程序 以前我用编程猫给做出来了 而且运行效果还可以 今天我想用 Scratch 给他做出来 我发现这个 Scratch 没有退出循环这个命令 所以那个程序不能用 就从网上再

大家好,欢迎来到IT知识分享网。

这两天研究编程的一些算法,就是排序算法,就是插入排序法。我从资料中看到了一个程序。以前我用编程猫给做出来了,而且运行效果还可以。今天我想用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语言程序。

插入排序法的两种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语言程序运行的结果。

插入排序法的两种C语言和图形化编程的的程序

C语言程序运行结果

这个呢是我编写的scratch图形化编程程序截图。

插入排序法的两种C语言和图形化编程的的程序

Script编程程序截图

程序都已经运行过了,是正常的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/183674.html

(0)
上一篇 2025-07-21 12:15
下一篇 2025-07-21 12:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信