电脑一台
linux系统测试(window下的虚拟机也可以)
写一个简单选择排序法的函数名,包含参数。int SelectSort(int * ListData,int ListLength);
写两个循环,在循环中应用简单选择插入排序: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;}
对编好的程序进行测试,得出测试结果: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; }
简单选择排序中,需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数。基本上,在比较的时候,消耗的时间复杂度为:n*n。(这个也是该算法的时间复杂度。)