1. 优化后的冒泡排序程序:
#include#include void pop_sort(int *arr,int len){ int i,j; int flag=0; for(j=0;j arr[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.使用优化后的选择排序编程:
#includevoid select_sort(int* arr,int len){ int i,j; for(i=0;i arr[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.使用直接插入进行编程:
#includevoid insert_sort(int *arr,int len){ int i,j,temp; for(i=1;i 0&&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.快速排列进行排列:
#includeint 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;i data=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



