笔试后,总结几个排序

最近几天去了好几家公司的笔试,发现排序都会有,所以索性今天想把排序给整下,顺便自己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~

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值