排序算法总结

2021-02-10 10:16

阅读:398

标签:完成   最小   ges   index   build   bubble   print   i++   wap   

1交换排序

1.1交换排序--冒泡排序(从前向后冒泡)

void bubbleSort(int arr[],int n)
{
	for(int i=0;iarr[j+1]){
				int temp=arr[j];
				arr[j]=arr[j+1];
				arr[j+1]=temp;
			}
		}
	}
}

1.2交换排序--选择排序(选择排序第i个位置的元素跟后面的其他元素比较,找到比第i个元素小且最小的元素,与它进行交换)

void selectSort(int arr[],int n)
{
	for(int i=0;iarr[j]){
				minIndex=j;
			}
		}
		if(minIndex!=i){
			int temp=arr[i];
			arr[i]=arr[minIndex];
			arr[minIndex]=arr[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;itemp&&j>=0;j--){
			arr[j+1]=arr[j];
		}
		arr[j+1]=temp;
		
	}
	
}

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=temp)
			 j--;
		 arr[i]=arr[j];
		 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(leftarr[current])
	{
		current=left;
	}
	if(rightarr[current])
	{
		current=right;
	}
	if(current!=i)
	{
		swapheapNode(arr,i,current);
		heapify(arr,current,length);
	}
	
}
void swapheadNode(int arr[],int i,int j){
	int temp=arr[i];
	arr[i]=arr[j];
	arr[j]=temp;
}
void heapSort(int arr[],int length)
{
	buildHeap(arr,length);
	int len=length;
	for (int i = length - 1; i > 0; i++) {
		printf_s("%s", "建立完成"+i);
		swapheapNode(arr, 0, i);
		len--;
		heapify(arr, 0, len);
	}
}

参考博文

排序算法总结

标签:完成   最小   ges   index   build   bubble   print   i++   wap   

原文地址:https://www.cnblogs.com/lianggaoblogyuan/p/12743681.html


评论


亲,登录后才可以留言!