几种简单的排序算法实现
几种简单的排序算法实现
冒泡排序
voidbubbleSort(int*pData,intcount){for(inti=1;i<count;i++){for(intj=count-1;j>=i;j--){if(pData[j]<pData[j-1]){intiTmp=pData[j];pData[j]=pData[j-1];pData[j-1]=iTmp;}}}}
选择排序
voidselectSort(int*list,intcount){intmin,i,j;for(i=0;i<count;i++){min=i;for(j=i+1;j<count;j++){if(list[i]>list[j])min=j;}if(min!=i)swap(list[i],list[min]);}}
折半插入排序算法
voidbinary_insertion_sort(intarray[],intn){inti,j,temp,m,low,high;for(i=1;i<n;i++){temp=array[i];low=0;high=i-1;//5,36,24,10,6,12while(low<=high){m=(low+high)/2;if(array[m]>temp)high=m-1;elselow=m+1;}for(j=i-1;j>=high+1;j--)array[j+1]=array[j];array[j+1]=temp;cout<<endl;}}
插入排序
voidInsertSort(intarray[],intn){for(inti=1;i<n;i++){for(intj=i;j>0;j--){if(array[j]>array[j-1])swap(array[j],array[j-1]);elsebreak;}}}
快速排序
voidquick_sort(ints[],intleft,intright){if(left<right)return;inti=left,j=right,temp=s[left],t;while(i!=j){while(i<j&&temp<=s[j])j--;while(i<j&&temp>=s[i])i--;if(i<j){t=s[i];s[i]=s[j];s[j]=t;}}s[left]=s[i];s[i]=temp;quick_sort(s,left,i-1);quick_sort(s,i+1,right);}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。