方法/步骤:程序实现:
写一个简单选择排序法的函数名,包含参数。 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; }
方法/步骤2:数据分析:
简单选择排序中,需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数。 基本上,在比较的时候,消耗的时间复杂度为:n*n。(这个也是该算法的时间复杂度。)