一
题意的理解,看清楚n的取值范围。也看清楚结果的取值,判断出n的取值会溢出int,所以编代码的时候需要注意这一点
二
冒泡的使用
1 5 6
例如三个数排序,第一次排成5 6 1第二次 6 5 1
每一次循环有一个最小的数到最后,n -1次循环就会使n - 1个数拍到最后,也就完成了n个数的排序。
这三个数,1做了两次比较;5做了一次比较。一开始是n-1次比较,没进行一次循环,就相当于少一个数,也就意味着少了一次比较。
for (j = 0;j <n -1;j++) //一共n个数,需要n—1次循环完成排序
for(i = 0;i<n-(I+j);i++)//控制比较次数
{
if(a[I]<a[I+1]
{ tem = a[ I ] ;
a[I] = a[ I+1] ;
a[I+1] = a [I];}
}
三选择排序
void sort(int arr[],int n)
{
int tem;
for (int I = 0;i <n - 1;i++)
{
for(int j = I + 1;j < n;j ++)
{
if(arr[j] > arr[I]
{
tem = arr[I];
arr[I] = arr[j];
arr[j] = tem;
}
}
}