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

7.26数据结构day5

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

7.26数据结构day5

1. 优化后的冒泡排序程序:

#include 
#include 

void pop_sort(int *arr,int len){
	int i,j;
	int flag=0;
	for(j=0;jarr[i+1]){
				int temp=0;
				temp=arr[i+1];
				arr[i+1]=arr[i];
				arr[i]=temp;
				flag=1;
			}
		}
		if(flag==0){
		break;
		}
	}
}

int main(int argc, const char *argv[])
{
	int arr[8]={198,289,98,357,85,170,232,110};
	int len=sizeof(arr)/sizeof(int);
	pop_sort(arr,len);
	for(int i=0;i 

运行的代码结果:

2.使用优化后的选择排序编程:

 

#include 

void select_sort(int* arr,int len){
	int i,j;
	for(i=0;iarr[j]){
				index=j;
			}
		}
		if(index!=i){
			int temp=0;
			temp=arr[index];
			arr[index]=arr[i];
			arr[i]=temp;
		}
	}
}

int main(int argc, const char *argv[])
{
	
	int arr[8]={198,289,98,357,85,170,232,110};
	int len=sizeof(arr)/sizeof(int);
	select_sort(arr,len);

	for(int i=0;i 

代码结果:

3.使用直接插入进行编程:

#include 


void insert_sort(int *arr,int len){
	int i,j,temp;
	for(i=1;i0&&arr[j-1]>temp;j--){ 
			arr[j]=arr[j-1];             //arr[1]=8
		}
		arr[j]=temp;                    //arr[0]=7
	}
}


int main(int argc, const char *argv[])
{
	int arr[8]={198,289,98,357,85,170,232,110};
	int len=sizeof(arr)/sizeof(int);
	insert_sort(arr,len);

	for(int i=0;i 

 代码结果:

4.快速排列进行排列:

#include 


int part(int* arr,int low,int high){
	int x=arr[low];
	while(low=x&&low 

 代码的实现:

2.使用哈希存储将数据存入哈希表中,并进行查找

 

哈希存储:

.h头文件:

#ifndef _HASH_H_
#define _HASH_H_

#define N 10
#define P 13

typedef int datatype;
typedef struct Node{
	datatype data; 				//数据域
	struct Node* next;  		//指针域
}Node;

//初始化哈希表
void init_hash(Node* hash[]);

//将元素存入哈希表
int insert_hash(Node* hash[],int x);

//查看哈希表的函数
void show_hash(Node* hash[]);

//哈希查找
void search_hash(Node* hash[],int key);

#endif

 需要调用到的自定义函数:

#include 
#include 
#include "hash.h"


//初始化哈希表
void init_hash(Node* hash[]){
	for(int i=0;idata=x;
	q->next=NULL;

	//使用头插法将结点放入链表hash[index]
	q->next=hash[index];
	hash[index]=q;

}


//查看哈希表的函数
void show_hash(Node* hash[]){
	for(int i=0;i",q->data);
			q=q->next;
		}
		printf("NULLn");
	}
}

//哈希查找
void search_hash(Node* hash[],int key){
	int index=key%P;  //定位要查找的值的所在链表
	//定义遍历指针遍历链表
	Node* q=hash[index];
	while(q!=NULL&&q->data!=key){
		q=q->next;
	}
	//对找到的结点判断
	if(NULL==q){
		printf("查找失败n");
	}else {
		printf("查找数据在表中n");
	}
}

main函数:

#include 
#include 
#include "hash.h"

int main(int argc, const char *argv[])
{
	int arr[N]={25,51,8,22,26,62,11,16,54,41};
	
	Node *hash[P];     //哈希表
	
	init_hash(hash); 	//初始化哈希

	//将序列元素存入哈希表3
	for(int i=0;i 

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

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

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