排序算法总结
2021-02-10 10:16
标签:完成 最小 ges index build bubble print i++ wap 参考博文 排序算法总结 标签:完成 最小 ges index build bubble print i++ wap 原文地址:https://www.cnblogs.com/lianggaoblogyuan/p/12743681.html1交换排序
1.1交换排序--冒泡排序(从前向后冒泡)
void bubbleSort(int arr[],int n)
{
for(int i=0;i
1.2交换排序--选择排序(选择排序第i个位置的元素跟后面的其他元素比较,找到比第i个元素小且最小的元素,与它进行交换)
void selectSort(int arr[],int n)
{
for(int i=0;i
2插入排序
2.1直接插入排序(带有标志位的)
void insertSort(int arr[],int n)
{
for(int i=2;iarr[0]&&j>0;j--)
{
arr[j+1]=arr[j];
}
arr[j+1]=arr[0];
}
}
2.2直接插入排序(不带有标志位)
void insertSort2(int arr,int n)
{
for(int i=1;i
2.3希尔排序
void shellSort(int arr[],int init,int size){
int dk,j,k;
for( dk=init;dk>=1;dk/=2){
for( i=dk+1;iarr[0]&&j>0;j-=dk){
arr[j+dk]=arr[j];
}
arr[j+dk]=arr[0];
}
}
}
2.4归并排序
void mergeArray(int arr[],int first,int mid,int last,int temp[])
{
int i=first;
int j=mid+1;
int k=0;
while(i
2.5快速排序
int partition(int arr[],int left,int right){
int i=left;
int j=right;
int temp=arr[left];
while(i
2.6堆排序
void buildHeap(int arr[],int length){
for(int i=length/2;i>=0;i++)
{
heapify(arr,i,length);
}
}
void heapify(int arr[],int i,int length)
{
int left=2*i;
int right=2*i+1;
int current=i;
if(i>=length)
return;
if(left
上一篇:springboot异常处理