数据结构(2)
来源:互联网 发布:c语言调用exit 编辑:程序博客网 时间:2024/05/16 00:27
最近在看Data Structures and Algorithm Analysis in C, Second Edition这本书,就把我自己的代码放在这儿
书的第一章中间给了两个引例,就是如何求出一组数据中的第k个数据,给了两种idea,我实现如下,可能比较笨重
第一个最简单的排序,给出:
#include <stdio.h>#include <stdlib.h>#include <time.h>void sort(int a[],int number){int i,j,temp;for (i=0;i<number-1;i++){for (j=i;j<number;j++){if (a[i]<a[j]){temp = a[i];a[i] = a[j];a[j] = temp;}}}}void show(int a[]){int i;for (i=0;i<10;i++){printf("%d\t",a[i]);}}int main(){srand(time(NULL));int i;int k;int a[10];for (i=0;i<10;i++){a[i] = rand()%100;}printf("before sorting:\n");show(a);printf("please input a number u want to check:");scanf("%d",&k);sort(a,10);printf("after sorting:\n");show(a);printf("the check number is %d\n",a[k-1]);system("pause");return 0;}
过程很简单,不给出解释
下面给出第二种方法,就是对该组数据的前k个数据进行排序后,然后把后面的数据一个一个的接纳进来,也就是插入排序,每进来一个就出去一个,最后一个就是我们要求的数据,代码如下:
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <malloc.h>int rand_number(){return rand()%100;}void show(int a[],int number){int i;for (i=0;i<number;i++){printf("%d\t",a[i]);}printf("\n");}void sort(int a[],int number){int i,j,temp;for (i=0;i<number-1;i++){for (j=i;j<number;j++){if (a[i]<a[j]){temp = a[i];a[i] = a[j];a[j] = temp;}}}}int main(){srand(time(NULL));int number,i,k,j,p;printf("please input a number:\n");scanf("%d",&number);printf("please input a k_number:\n");scanf("%d",&k);int *a = (int *)malloc(sizeof(int)*number);int *b = (int *)malloc(sizeof(int)*k);for (i=0;i<number;i++){a[i] = rand_number();}printf("the array A is:\n");show(a,number);for (j=0;j<k;j++){b[j] = a[j];}printf("before sorting array B is:\n");show(b,k);sort(b,k);printf("after sorting array B is:\n");show(b,k);for (int i=k;i<number;i++){if (a[i]<=b[k-1])continue;else{for (j=0;j<k;j++){if (a[i]>b[j]){for (p=k-1;p>j;p--)b[p] = b[p-1];b[j] = a[i];break;}}show(b,k);}}system("pause");return 0;}写的有点乱,我把插入的过程打印出来了!
0 0
- 数据结构(2)——大话数据结构
- 数据结构(2)----排序
- 数据结构(续2)
- 数据结构课程设计(2)
- 19,数据结构(2)
- 数据结构(2)
- 数据结构-链表(2)
- 数据结构-栈(2)
- 数据结构---单链表(2)
- 数据结构---数组(2)
- 数据结构---字符串(2)
- 数据结构学习(2)
- 数据结构总结(2)
- 2、数组(数据结构)
- 数据结构基础(2)
- 9.数据结构(2)
- (2) 数据结构的起源--每天五分钟学习数据结构
- 数据结构(java)练习2
- Struts遍历标签<s:iterator>总结
- nyoj 385-取石子(五)(斐波那契博弈问题)
- 如何编写nand flash 驱动
- cocos2dx之弧度和角度的互换
- 象与骑象人-幸福的假设
- 数据结构(2)
- 解决magento保存产品时耗时很长的问题
- Ubuntu apt-get详解
- C++:STL标准入门汇总
- iOS 真机测试流程详解
- 【Apache Solr系列】使用IKAnalyzer中文分词以及自定义分词字典
- Python序列:字符串、列表和元组
- ArcGIS Engine 10开发环境的一些常见问题
- magento缓存系列详解:实施正确的缓存策略及不同缓存结构分析