- 浏览: 1230673 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
一.起泡法排序
起泡法排序:掌握两个重点,(1)N个数排序需要进行N-1趟排序;(2)第J趟排序需进行N-J次比较(交换).
程序如下:定义一维数组,这里a[0]不用,存储a[1]...a[5]共5个元素,因此N为5.
#include <stdio.h>
main()
{
int i,j,temp,a[6];
printf("\n input the number \n");
for(i=1;i<=5;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=4;j++)
for(i=1;i<=5-j;i++)
{
if(a[i]>a[i+1]) {temp=a[i];a[i]=a[i+1];a[i+1]=temp;}
}
for(i=1;i<=5;i++)
printf("\n%d",a[i]);
}
上述程序中,第一个循环用于控制输入,第二个循环用于控制进行排序的趟数,第三个循环则用于每一趟排序中需进行比较交换的次数.
二.选择排序
此排序算法两种理解:
1将N个数中最首的元素与其它元素比较,令P始终指向首元素所在的位置,即使它与其它元素交换了位置;N个元素共进行N-1轮排序,进行完第一轮排序后,将剩下N-1个元素中的首元素与与其它元素比较,令P始终指向首元素所在的位置,即使它与其它元素交换了位置;。。。。。
2.每次将最小或最大的数交换到(相对)最首的位置,依次循环,执行N-1次。
1。
main()
{
int p,q,a[10],i,j,temp;
printf("input the number:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
p=i;
q=a[i];
for(j=i+1;j<10;j++)
if(q>a[j]) {p=j;q=a[j];}
if(i!=p)
{
temp=a[i];
a[i]=a[p];
a[p]=temp;
}
printf("%d",a[i]);
printf(",");
}
}
2.
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k]) k=j;
t=array[k];array[k]=array[i];array[i]=t;
}
}
main()
{
int i,a[10];
printf("input the array\n");
for(i=0;i<10;i++)
scanf("%d",a[i]);
sort(a,10);
printf("the sorted array\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
三.把一个整数按大小顺序插入已排好序的数组中。
为了把一个数按大小插入已排好序的数组中, 应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。
main()
{
int i,a[6];
int p,q,j,temp;
int key,k;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(i=0;i<5;i++)
printf("%d,",a[i]);
for(i=0;i<5;i++)
{
p=i;
q=a[i];
for(j=i+1;j<5;j++)
{
if(q<a[j])
{
p=j;
q=a[j];
}
if(i!=p)
{
temp=a[i];
a[i]=a[p];
a[p]=temp;
}
}
}
printf("\nThe first sorted num:");
for(i=0;i<5;i++)
printf("%d,",a[i]);
printf("\n Input the key num:");
scanf("%d",&key);
for(i=0;i<5;i++)
if(key>a[i])
{
for(k=4;k>=i;k--)
a[k+1]=a[k];
break;
}
a[i]=key;
for(i=0;i<=5;i++)
printf("%d,",a[i]);
printf("\n");
}
本程序首先对数组a中的10个数从大到小排序并输出排序结果。然后输入要插入的整数n。再用一个for语句把n和数组元素逐个比较,如果发现有n> a[i]时,则由一个内循环把i以下各元素值顺次后移一个单元。后移应从后向前进行(从a[9]开始到a[i]为止)。后移结束跳出外循环。插入点为i,把n赋予a[i]即可。如所有的元素均大于被插入数,则并未进行过后移工作。此时i=10,结果是把n赋于a[10]。最后一个循环输出插入数后的数组各元素值。
发表评论
-
计算成本价及要打到某一价位需要的投入
2013-08-19 10:44 1078package com.lwf.test; impor ... -
Acer Aspire 4720 Fn键坏了,屏幕亮度不够问题的解决
2013-08-17 22:12 1535笔记本电脑:Aspire 4720 ... -
使用远程连接桌面后总是黑屏的问题
2013-01-26 11:42 1701启动远程的任务管理器使用组合键Ctrl+Alt+End,于是打 ... -
XP系统文件夹图标显示成快捷方式了
2012-12-27 20:47 940WindowsXP中的图标出现混乱,甚至图标文件坏了而无法正常 ... -
如何将outlook express通讯簿导入到office的Outlook中
2011-07-25 12:22 879如何将outlook express通讯簿导入到office的 ... -
Excel字符串截取函数
2011-05-04 13:15 4576引自:http://dl.iteye.com/uplo ... -
Excel第一行下拉三角形
2011-03-02 15:50 1796选中第一行的一个格子,然后选择菜单“Data --> F ... -
Excel文件下拉框是怎么实现的?
2010-12-23 11:00 1303Excel文件下拉框是怎么实现的? 1、选中适用下拉框 ... -
怎样彻底删除"System Volume Information"病毒
2010-02-25 14:23 4388System Volume Information是系 ... -
任务栏出现两个重复图标的解决办法
2010-02-25 14:05 2042转:http://redking.blog.51cto.com ... -
win32.Jadtre.B解决办法详解[免删除]
2010-02-25 11:16 2763本文转自:http://www.life63.com/Blog ... -
解决xp系统进不了安全模式的问题
2010-02-24 13:35 2567最近发现,Windows XP系统进不了安全模式的挺多,终 ... -
利用outlook自动回复邮件
2007-05-11 10:51 1567Outlook Express是一个功能十分强大的邮件收发软件 ... -
Excel使用技巧
2008-01-09 14:50 35160Excel 使用技巧 在工作当中用电子表格 ... -
达人面试经历
2008-12-04 14:17 920今天去参加了微软的一 ... -
!cvs配置
2009-01-09 17:20 814http://www.redsaga.com/CVS_newb ... -
签证:2012年实现不再“一票难求”
2009-01-13 17:04 878狗屁中国铁路局年年丢B,年年到了春运就拿2012年不再“一票难 ... -
论程序员的学习!
2009-01-21 14:59 813我有一个缺点:那就是做事总是不够专注,表现在学习上那就是不够坚 ... -
牛人的笔记本拆装-来自百度贴吧
2009-01-22 14:58 9782008-10-26 00:25 ... -
程序员的十层楼
2009-02-17 15:39 918http://softwareblogs-zho.intel. ...
相关推荐
【内部排序算法比较课程设计】主要关注的是对六种经典的内部排序算法的性能对比,包括起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序和堆排序。这些算法是计算机科学中用于对数据进行排序的基础工具,各...
`Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...
### 数据结构课程设计:内部排序算法比较_C语言 #### 一、课题背景与意义 排序作为数据结构中的重要组成部分,在实际开发中具有广泛的应用场景。理解不同排序算法的特点及其适用场景,对于提高程序效率和解决问题...
### 各种排序算法比较 #### 一、稳定性比较 稳定性是排序算法中一个重要的特性,指的是相等的元素在排序前后保持原有的相对位置不变。根据文档提供的信息,我们可以总结出以下结论: - **稳定排序**:插入排序、...
归并排序算法是一种高效的排序算法,它的工作原理是通过将数组分为两个部分,然后将每个部分排序,最终合并两个部分以达到排序的目的。归并排序算法的时间复杂度为O(n log n),因此它适合大规模的数据排序。 6.堆...
**内部排序算法比较** 在计算机科学中,内部排序是指数据在内存中进行的排序过程,无需额外的存储设备。本报告主要关注了六种常见的内部排序算法:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序和堆...
算法分析与设计排序算法比较 通过对各种排序算法的思想、算法的分析,探究它的使用范围以及时间复杂度和空间复杂度。 冒泡排序算法 冒泡排序算法思想简单描述:在要排序的一组数中,对当前还未排好序的范围内的...
冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 - **比较次数**...
快速排序是一种高效的排序算法,它的工作原理是选择一个枢轴元素,然后将数组分割成两个子数组,并递归地对每个子数组进行排序。该算法的时间复杂度为O(n log n),空间复杂度为O(log n)。在我们的实现中,我们使用了...
本文将深入探讨“C语言数据结构内部排序算法及比较”这一主题,结合个人课程作业的经验,对一些核心概念进行阐述,并对常见的内部排序算法进行比较。 首先,数据结构是组织和管理数据的方式,它包括数组、链表、树...
稳定排序是指在排序前后,相等关键字的相对位置保持不变,例如,序列3, 15, 8, 8, 6, 9经过稳定排序后,两个8的相对位置不会改变。而不稳定排序则可能改变相等关键字的相对位置。 内部排序是针对数据量较小,能一次...
基于教材内容,任选两种排序算法,实现并比较性能。 基本要求 (1)至少要有一种排序算法的性能优于 O(n2 ) (2)对实现的排序算法进行实验比较,实验比较数据参见教材 7.8 章节 (3)排序算法要基于教材,测试输入...
归并排序的关键在于归并过程,即将两个有序的子序列合并成一个有序序列。 外部排序是指由于排序的数据量过大,无法一次全部装入内存,需要借助外部存储(如硬盘)进行排序的过程。常见的外部排序方法包括多路归并...
本篇文章将深入探讨10种常见的内部排序算法,包括它们的基本思想、比较次数和移动次数的计算,以便更直观地理解不同算法的效率。 1. **直接插入排序**: 直接插入排序是一种简单的排序算法,它通过比较新元素与已...
在IT领域,编程语言如C++和硬件描述语言如Verilog是两个重要的工具,分别用于软件和硬件设计。本文将探讨如何使用这两种语言实现几种基本的排序算法:冒泡排序、选择排序,以及两种全比较排序(并行和串行)。 首先...
(1) 对以下10种内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序、折半插入排序、二路插入排序、归并排序、基数排序。 (2) 待排序表的表长不小于100;其中的数据要用伪随机...
数据结构课程设计中的内部排序算法比较是一个非常重要的主题。它主要涵盖了各种内部排序算法的特点、应用场景以及它们之间的性能差异等内容。 ### 内部排序算法概述 #### 什么是内部排序算法? 内部排序算法是指...