这个排序对吗,是直接选择排序吗?
void Sort(int *array, int n){ int i,j,t; for (i=0;i<n;i++) { for (j=i+1;j<n;j++) { if (array[j]<array[i]) { t = array[j]; array[j] = array[i]; array[i] = t; } } }}
void Sort(int *array, int n){ int i,j,t; for (i=0;i<n-1;i++) { int index = i; for (j=i+1;j<n;j++) { if (array[j]<array[index]) { index = j; } } t = array[i]; array[i] = array[index]; array[index] = t; }}
[解决办法]
选择排序
[解决办法]
是选择排序
[解决办法]
我用“index = j;”代替了你的“ t = array[j]; array[j] = array[i]; array[i] = t;”,赋值的次数比你少了两次,效率更高!
/* 冒泡排序 */void BubbleSort (int s[],int n){ int i,j,temp=0; int exchange; exchange=0; for(i=0;i<n;i++) { for(j=n-1; j > i; j--) { if(s[j] < s[j-1]){ temp=s[j];//注意冒泡排序交换的是相邻两个元素 s[j]=s[j-1]; s[j-1]=temp; exchange=1; } } if(!exchange) return; }}