#include <iostream>
using namespace std;
void bubbleSort (int a[],int n)
{
int i ,j,temp;
for (i=1; i<n; i++)
{
for (j=0; j<n-i; j++)
{
if (a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
void selectSort (int a[],int n)
{
int i ,j,temp;
for (i=0; i<n-1; i++)
{
for (j=i+1; j<n; j++)
{
if (a[i]>a[j])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
}
void insertionSort(int a[],int n)
{
int i ,j,temp;
for (i=1; i<n; i++)
{
for (j=0; j<i; j++)
{
if (a[i]<a[j])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
}
void quickSort (int a[], int start, int end)
{
int left =start,right=end-1;
int temp,pivot=a[end];
while(left<right)
{
if (a[left]<=pivot)
{
left++;
continue;
}
if (a[right]>pivot)
{
right--;
continue;
}
temp=a[left];
a[left]=a[right];
a[right]=temp;
left++;
}
if (a[left]<pivot)
{
left++;
}
temp=a[left];
a[left]=a[end];
a[end]=temp;
if (left-1>start)
{
quickSort(a,start,left-1);
}
if (left+1<end)
{
quickSort(a,left+1,end);
}
}
int binarySerach(int a[], int n,int num)
{
int low=0,high =n-1;
while(low<=high)
{
int mid=(low+high)/2;
if(num>a[mid])
low =mid+1;
else if (num<a[mid]){
high=mid-1;
}
else return mid;
}
cout<<"the num is not in list "<<endl;
return -1;
}
int main ()
{
int a[6]= {4,2,9,1,0,6};
int i=0;
for (i=0; i<6; i++)
cout<<" a["<<i<<"] "<<a[i];
cout<<endl;
//bubbleSort(a,6);
//selectSort(a,6);
//insertionSort(a,6);
quickSort(a,0,5);
i= binarySerach(a,5,7);
cout<<"binarySerach 4 the index of 4 is "<<i<<" a[i]= "<<a[i]<<endl;
for (i=0; i<6; i++)
cout <<" a["<<i<<"] "<<a[i];
cout<<endl;
}
简单的复习下排序算法