多语言展示
当前在线:1744今日阅读:155今日分享:35

如何使用c语言实现简单选择排序

在每次的排序过程中,只选择最小或者最大的关键字,通过多次的选择交换,使无序表变成有序表的过程:
工具/原料
1

电脑一台

2

linux系统测试(window下的虚拟机也可以)

方法/步骤:程序实现:
1

写一个简单选择排序法的函数名,包含参数。int SelectSort(int * ListData,int ListLength);

2

写两个循环,在循环中应用简单选择插入排序:int SelectSort(int * ListData,int ListLength){ int i , j ; int length = ListLength; for(i=0;i<=length-2;i++) { int k = i; for(j=i+1;j<=length-1;j++) { if(ListData[k]>ListData[j]) { k=j; } }   if(k!=i) { int tmp = ListData[i]; ListData[i] = ListData[k]; ListData[k] = tmp; } } return 0;}

3

对编好的程序进行测试,得出测试结果:int main(){ int TestData[5] = {34,15,6,89,67}; int i = 0; printf('排序之前的结果\n'); for(i = 0;i<5;i++) printf('|%d|',TestData[i]); int retData = SelectSort(TestData,5); printf('排序之后的结果:\n'); for(i = 0;i<5;i++) printf('|%d|',TestData[i]); return 0; }

方法/步骤2:数据分析:

简单选择排序中,需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数。基本上,在比较的时候,消耗的时间复杂度为:n*n。(这个也是该算法的时间复杂度。)

推荐信息