利用选择法,描述将10个数按从大到小顺序排列的基本思路与算法流程

作者&投稿:延怀 (若有异议请与网页底部的电邮联系)
学习算法用什么软件,用什么编程语言~

算法不分语言。通俗的讲算法是解决问题的方法,它可以用任何语言实现(就是核心思想是一样的,但用不同语言实现步骤有差别).
所以学算法不需要软件不特定什么语言(当然对应语言的编译器你得有的)

参考资料:https://www.zhihu.com/question/19981544
这个是知乎上一个关于学习算法的问题,你看看吧。

想写编程,想做程序员,算法这个还真不讲究,但是逻辑思维能力一定要强,为什么这么说,因为一个客户想要的,你首先得做出来,而且,客户想不到的,你也要想到,所以程序员的思维不同常人,比如我是客户,我让你做一个 登陆 模块,当然客户的想法就是,你把登陆模块做出来,我只要账号密码对了就能进,这就是他的,但你呢,不仅正确的账号密码能进,你还要思考到,错误的账号,正确的密码,正确的账号,错误的密码,空账号密码,等等一系列,这些和算法无关。 其实编程的话,建议你从C学起,C前期只是一个过渡,不很难,但也不简单,学这个不仅要耐心,而且还要敢兴趣,否则根本就不要去学编程了,枯燥无味。 一旦C语言上手了,那么你去学PHP. HTML. .NET这些,就方便许多了。JAVA这个根据个人所好吧 。 希望能帮到你, 不过请采纳,本人真心为你而答

选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最大的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。

java选择排序法代码

import java.util.Random;

public class ArrayDemo {    

public static void main(String[] args) {    

Random random=new Random();    

int[] pData=new int[10];   

for(int i=0;i<pData.length;i++){ //随机生成10个排序数

Integer a =random.nextInt(100);        

pData[i]= a;        

System.out.print(pData[i]+" ");   

}    

System.out.println();    

pData=Choose(pData);    

for(int i=0;i<pData.length;i++){        

System.out.print(pData[i]+" ");    

}    

System.out.println();

}

public static int[] Choose(int[] pData){    

System.out.println();    

int k;    

for (int i = 0; i < pData.length; i++) {        

k = i;        

for (int j = i; j < pData.length; j++) {            

if(pData[j]<pData[k]){k = j;}        

}        

int a=pData[i];       

pData[i]=pData[k];        

pData[k]=a;    

}    

return pData;

}

}

扩展资料:

其他排序方法:

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;

以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:

初始序列:{49 27 65 97 76 12 38}
第1趟:12与49交换:12{27 65 97 76 49 38}
第2趟:27不动 :12 27{65 97 76 49 38}
第3趟:65与38交换:12 27 38{97 76 49 65}
第4趟:97与49交换:12 27 38 49{76 97 65}
第5趟:76与65交换:12 27 38 49 65{97 76}
第6趟:97与76交换:12 27 38 49 65 76 97 完成

参考资料:百度百科-选择排序法



视频讲解的是Java面向对象编程语言中关于排序算法的知识,重点讲解了选择排序的排序方式,对选择排序进行了图解。



//冒泡法排序
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,temp;
for(i=0;i<N;i++)
scanf("%d",a[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j]<a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
printf("\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}

/*选择排序*/
#include "stdio.h"
#define N 10
main()
{
int a[N];
int i,j,p,temp;

for(i=0;i<N;i++)
scanf("%d",a[i]);

for(i=0;i<N-1;i++)
{
p=i;
for(j=i+1;j<N;j++)
if(a[j]<a[p]) p=j;
temp=a[i];a[i]=a[p];a[p]=temp;
}
printf("\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
}


C++:输入一个一维数组,用选择法升序排序
include <iostream> using namespace std;void ChooseSort(int*,int);void swap(int&,int&);int a[1002];int main(){ int n;cin>>n;for(int i=1;i<=n;++i)cin>>a[i];ChooseSort(a,n);for(int i=1;i<=n;++i)cout<<a[i]<<' ';cout<<endl;return 0;} void ChooseSort(...

用选择法对10个整数从小到大排序
选择法排序基本思想: 每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。 简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r交换;第2趟,在待排序记录r[2]~r[n]中选出...

关于C语言用选择法对数组中10个整数按由小到大排序
\\n");for(i=0;i<10;i++)printf("%d ",a[i]);printf("\\n");return 0;} 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(array[j]<array[k])k=j;t=array[k];array[k]=array[i];array[i]=t;} } ...

用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入_百度...
在main函数中定义变量和数组:2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:3、编译运行程序,输入任意的10个数,回车后即可看到排序后的结果。以上就是c语言中选择排序的用法:...

vb 编程 对已知存在在数组中的6个数,分别采用选择法冒泡法实现从小到大...
经n-1次两两相邻比较后得次大的数; 3)依次类推,n+1个数共进行n趟比较。For i=0 To n - 1 For j = 0 To n-1-i If a(j) > a(j+1) Then temp=a(j)a(j)=a(j+1)a(j+1)=temp End if Next j Next i‘一步一步将大的数字沉到底部 2、选择法思想: 1)对有n+1...

...数列1,-4,35,0,5,8,-9,6存储在数组a中,用选择法将该数列从大到小排 ...
var a,b:array [1..8] of integer;i,j,max:integer;begin for i:=1 to 8 do begin max:=1;for j:=2 to 9-i do if a[max]

...1到100的10个整数放在数组a(1to10)中,用选择法将数组中的元素按由...
For i = 1 To 10 Print a(i);Next End Sub 选择法比冒泡法效率更高,在于其引入了变量k,先只变动下标而不是如冒泡法那样temp = a(i): a(i) = a(j): a(j) = temp ,直接交换。这样减少了temp = a(i): a(i) = a(j): a(j) = temp 执行次数,提高了效率 选择法最多只会...

用选择法对10个整数由大到小排序。要求画出流程图
在剩余的n-1个元素中,再找到最大的元素,将其与第n-1个元素交换位置。重复上述步骤,直到只剩下一个元素为止。其中,每经过一轮,就能确定出一个元素的位置。通过n-1轮选择,就能将这n个元素按照从大到小的顺序排好序。选择排序的时间复杂度为O(n^2)。下面是使用C语言实现选择排序算法的示例...

c语言中起泡法和选择法有什么不同,急!,谢谢!
i<10;i++)printf("%d ",a[i]);printf("\\n");return 0;}二、选择法 1、算法示例要求:用选择法对10个整数按降序排序。2、算法分析:每趟选出一个最值和无序序列的第一个数交换,n个数共选n-1趟。第i趟假设i为最值下标,然后将最值和i+1至最后一个数比较,找出最值的下标,若...

编写程序,用选择法对10个整数按从小到大顺序排序
2014-11-29 用选择法对10个整数从小到大排序 2015-05-17 C语言编程题:用选择法对10个整数排序 95 2012-06-20 编写程序,从键盘输入10个整数,要求用选择法和冒泡法将它们按... 32 2016-07-08 编写程序,实现用选择法对10个数从小到大排序,10个数的值用... 1 2011-05-07 用C语言编程:用选择法...

蝶山区15336763907: 利用选择法,描述将10个数按从大到小顺序排列的基本思路与算法流程 -
平娴核糖: 选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最大的记录作为有序序列中第i个记录.基于此思想的算法主要有简单选择排序、树型选择排序和堆排序. java选择排序法代码 import java.util.Random; public class ...

蝶山区15336763907: C语言用选择法对10个整数按从大到小排序.10个整数用scanf函数输入.利用数组 -
平娴核糖: #include<stdio.h>//标准输入输出函数调用需要此头文件、就是e799bee5baa6e997aee7ad94e58685e5aeb931333339653732那个printf和scanf函数要用的 void main()//主函数 {int i,j,min,temp,a[10]; printf("请输入:\n"); //屏幕输出引号...

蝶山区15336763907: C语言,用选择法对数组中10个整数按由小到大排序?求解释!!! -
平娴核糖: 首先以array[0]作为参照,从左到右扫描,找到最小的数据与array[0]位置交换. 接下来以array[1]作为参照,重复上述过程. ... k=i定位参照 k=j找到剩下数组中最小值

蝶山区15336763907: C语言:用选择法对数组中10个数按由大到小排序 -
平娴核糖: #include "stdio.h" main() { int a[10]; int i,j,t; printf("输入1-100之间的10个数:"); for(i=0;i<10;i++) scanf("%d",a[i]); for(i=0;i<10;i++) for(j=0;j<10-i;j++) if(a[j]<a[j+1]) {t=a[j+1];a[j+1]=a[j];a[j]=t;} for(i=0;i<10;i++) printf("%d",a[i]); }

蝶山区15336763907: C语言如何用选择法排序任意输入十个数(从大到小、从小到大)? -
平娴核糖: #include <stdio.h> main(void) {int i,j,a[10],p=0,t=0,temp; printf("请输入原数组:\n");for(j=0;j<10;j++)scanf("%d",&a[j]);temp=a[0]; for(j=0;j<9;j++){t=j;temp=a[j];for(i=j+1;i<10;i++)if(temp>a[i]) //这是由小到大排序 如果是大到小则改...

蝶山区15336763907: 用选择法对数组中十个整数由大到小排序,急用,请高手帮忙解答,谢谢 -
平娴核糖: #includefun(inta[10]) { int i,n,t; for(i=0;i<=10;i++) for(n=0;n<=10;n++) if(a[i] { t=a[i];a[i]=a[n];a[n]=t; } } main() { int a[10]; printf("排序后为%d"fun(a)); }

蝶山区15336763907: 各位朋友帮我想想: 用选择法对10个整数从小到大排序(C语言中的题),其中的“选择法”是指的是什么?它的 -
平娴核糖: 选择的要比冒泡的多声明一个.比较的次数是一样的,选择排序每扫描一遍数组;次轻&quot:"&lt:冒泡算法,每次比较如果发现较小的元素在后面,就交换两个相邻的元素.将待排序的元素看作是竖着排列的"的元素就浮到了次高位置,所以...

蝶山区15336763907: 利用比较法(从大到小),选择法(从大到小)和冒泡法(从小到大)描述将10个数按顺序排列的基本思路. -
平娴核糖: 你所举的例子,三个一模一样 具体的排序法没有比较法这个称呼 因为排序法都得进行比较.常见的排序法都是算法比较简单的 最简单是冒泡排序 其次是选择排序、插入排序 这是最常见的.冒泡排序是相邻比较对调 选择排序是每轮选最大者上台排...

蝶山区15336763907: C++编写函数void sort(int *x,int n),利用指针采用选择法对随机数组中的10个数做从大到小的排序 -
平娴核糖: 从大到小的简单选择排序,希望可以帮助你: void Sort(int * array, int length) /*对记录数组array做简单选择排序,length为待排序记录的个数*/ { int temp; for ( i=0 ; i< length-1 ; i++) //n-1趟排序 { int index=i; //假设index小标的元素最大 for ( j=i+1 ; ...

蝶山区15336763907: 帮忙用选择法编一个比较十个数大小的程序 -
平娴核糖: 就是用冒泡法给十个数排序撒; 下面就是输入十个数,将它们按从小到大的顺序输出,我用整型作例;程序我已经运行过,应该没有什么问题 ----------------------------------------------------------------------------- #include main() { int a[10]; int i,j,team; printf(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网