没说编程语言,但思想都是一样的。
把这三个数分别赋给a,b,c。
用条件判断语句(if)
先用a与b比,如果a>b,那么交换a与b的值(有的语言有交换函数,没有的话可以用个中间变量d,然后d=a;a=b;b=d,这样,a和b的值就互换了)
再用c和b比较,如果c<b,那么交换b与c的值(交换方法与交换a,b时相同,改字母就是了),同时要是这个条件成立的话,不但要交换b,c的值,还要把交换后的b的值和a再进行一次比较(其实就是if里再嵌套一个if语句,把a和b比较的语句复制放到这个if语句内就行了)。
流程图就是按思路画的,你再看一看画流程图的规则就行了
冒泡第一次:14 15 28 5 10 30
冒泡第二次:14 15 5 10 28 30
冒泡第三次:14 5 10 15 28 30
冒泡第四次:5 10 14 15 28 30
选择排序我忘记了!
#include <stdioh>
#include <stdlibh>
#include <timeh>
void main()
{
int a[100],i,j,t;
srand(time(NULL));
for(i=0;i<100;i++)
a[i]=rand()%200+1; //随机产生100个1到200的数
//排序
for(i=0;i<99;i++)
{
for(j=i+1;j<100;j++)
{
if(a[j]<a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
for(i=0;i<100;i++) //输出结果,十个一行
{
printf("%d ",a[i]);
if(i%9==0)
printf("\n");
}
}//一个简单的选择法,每次将最小的选出来
选择法就是按每一位应该是什么就是什么。
语言不是问题!
流程图我就用文字画,你自己图形化吧。
大概就是
1、初始化i=0;
2、判断i<n,是至3,否至6;
3、判断a[i]是不是在i-n-1中最大的?是,走5,不是走4
4、往后比较,与最大的进行交换,使得a[i]是在i-n中最大;
5、i++,调至2;
6、结束,输出结果。
参考代码:
import javautilScanner;
public class Main
{
private Scanner in = new Scanner(Systemin);
private int n, a[];
private void input(){
n = innextInt();//输入数组个数
a=new int [n];
for(int i=0;i<n;i++){
a[i]=innextInt();
}
}
private void sort(){
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;//假设x[i]最大,记为x[k]
for(j=i+1;j<n;j++){
if(a[k]<a[j])//如果有比x[k]大的数,记该数为最大的数x[k]
k=j;
}
if(k!=i)//一轮比完后,若x[k]发生了变化,说明有比x[i]大的数在后面。
{
t=a[i];
a[i]=a[k];
a[k]=t;//交换x[i]后面所有数中最大的那个,使x[i]是其后所有元素中最大的。
}
}
}
private void printa(){
for(int i=0;i<n;i++){
Systemoutprint(a[i]+" ");
}
Systemoutprintln();
}
public static void main(String[] args)
{
Main a = new Main();
ainput();
asort();
aprinta();
}
}
1选择排序思想:假定按从大到小排序,比较数组中所有数的大小,挑出最大的元素将其与第一个元素交换位置,然后比较除第一个元素外其他各元素的大小,挑出最大的元素与第二个元素交换位置,依此类推,完成排序。
2给你解释开头的n-2:k=0 to k=n-2,k总共取n-1个元素,当k=n-2时,对应a[n-2]为数组倒数第二个元素,此时i=n-i,a[i]即a[n-1]对应数组最后一个元素,当比较完a[n-2]和a[n-1]并排序后,整个数组就完成了排列。
3代码:
for(k=0;k<=n-2;k++)
{
index=k;
for(i=k+1;i<=n-1;i++)
{
if(a[i]<a[index])
{
index=i;
}
}
temp=a[k],a[k]=a[index],a[index]=temp;
}
以上就是关于给出三个数进行排序,从小到大输出,画出流程图,描述计算过程,且编程实现全部的内容,包括:给出三个数进行排序,从小到大输出,画出流程图,描述计算过程,且编程实现、冒泡排序流程图、C语言的一个简单程序:输入100个任意数字,按从小到大排序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)