龙空技术网

插入排序法两种程序的比较

望天空云卷云又舒 83

前言:

当前各位老铁们对“c语言排序程序比较法怎么用”都比较关怀,咱们都想要知道一些“c语言排序程序比较法怎么用”的相关知识。那么小编也在网摘上搜集了一些有关“c语言排序程序比较法怎么用””的相关内容,希望各位老铁们能喜欢,兄弟们一起来学习一下吧!

在常用的排序方法中,插入排序法也是很常见的。排序的原则就是抽出来一张牌。把它插入到前面合适的位置,使前面的排成为有序的比如大到小或者从小到大排的序列。我找到了两个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; //插入数据 }

}

这是这个程序编程猫图形化程序的截图。

我用PPT画出了程序运行的例子,下面是一部分程序。

我们再看看另一个程序。

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; //待排序元素 大于 有序序列最后一个元素 直接将该元素插入到有序序列最后

}

程序我也用图形化编程,用scratch给他做的出来。

而这个程序的运营效果和上面那个是一样的。

比较这两个程序。可以发现程序的开头和结尾部分都是相同的,只是中间循环的,就是那个j循环部分是不一样的,其实我之所以不用一种C语言程序来编写图形化程序,就是因为在scratch里面找不到“退出循环”这个指令,所以我才找了第二个程序,他们都能达到同样的效果。

标签: #c语言排序程序比较法怎么用