最近几天去了好几家公司的笔试,发现排序都会有,所以索性今天想把排序给整下,顺便自己vs6.0里调了下。
今天晚上总结了两个排序
1)选择排序:每轮找到最大或最小的放在顶部
2)冒泡排序:每轮找到最大或最小的沉到底部
选择排序代码:
void selectionSort(int arr[],int n)//选择排序
{
int smallIndex;
int pass, j;
int temp;
for(pass=0;pass<n-1;pass++)
{
smallIndex=pass;
for(j=pass+1;j<n;j++)
if(arr[j]<arr[smallIndex])
smallIndex = j;
if(smallIndex !=pass)
{
temp=arr[pass];
arr[pass]=arr[smallIndex];
arr[smallIndex]=temp;
}
}
}
冒泡排序代码:
void bubbleSort(int arr[], int n)//冒泡排序
{
int bigIndex;
int pass, j;
int temp;
for(pass=n-1;pass>0;pass--)
{
bigIndex=pass;
for(j=0;j<=pass;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
测试代码:
void main()
{
int arr[15];
int i;
cout<<"Original array"<<endl;
for(i=0;i<15;i++)
{
arr[i]=rand();
cout<<arr[i]<<" ";
}
cout<<endl<<endl;
// selectionSort(arr,15);
bubbleSort(arr,15);
cout<<"Sorted array" <<endl;
for(i=0;i<15;i++)
cout<<arr[i]<<" ";
cout<<endl;
}
接下来的几个排序明天再搞上去,先休息下,O(∩_∩)O~