栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构常见算法

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构常见算法

(1)冒泡排序

#include 
#include 
#include 

#define LEN 10

int main()
{
	int a[LEN] = {4,3,8,7,2,6,9,1,5,0};
	
	int i,j;
	int tmp;
	
	for(i=0;ia[j])
                   {
                       tmp = a[i];
                       a[i] = a[j];
                       a[j] = tmp;
                   }
		}
		a[j] = tmp;
	}
	
	for(i=0;i 

(2)选择排序

 

#include 

#define LEN 10

int main()
{
	int a[LEN] = {4,3,8,7,2,6,9,1,5,0};
	
	int i,j;
	int min_value;
	int min_pos;
	
	for(i=0;i 
 

(3)插入排序

 

#include 
#include 
#include 

#define LEN 10

int main()
{
	int a[LEN] = {4,3,8,7,2,6,9,1,5,0};
	
	int i,j;
	int tmp;
	
	for(i=0;i=0&&tmp

(4)快速排序

 

#include 

void fast_sort(int *array,int l ,int r)
{
	//已经递归到一个数了,不需要再排序
	if( l >= r )
		return ;
	
	int left = l;
	int right= r;
	
	//假定num的数值是最左边的数值
	int num = array[left];
	
	while( left < right )
	{
		//从数组右边开始往左边遍历,把比num要小的数值放在左边来
		while( num < array[right] && left array[left] && left 

(5)希尔排序

#include 


void xier_sort(int *s,int n)
{
	int i,j,temp;
	
	int d;//增量
	
	//增量一开始为总长度的一半,每次结束后除以2作为下一次的增量。
	//只要增量大于0,就继续排序
	for(d=n/2 ; d>0 ; d=d/2)
	{
		//从未排序区域的第一个数值往后遍历
		for(i=d; i=0 && temp< s[j-d])
				{
					s[j] = s[j-d];
					j = j-d;
				}
				s[j]=temp;
			}
			
			// for(j=i; j-d>=0 && temp 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号