当前位置: 首页 > news >正文

上海平台网站建设费用免费设计logo图标生成器

上海平台网站建设费用,免费设计logo图标生成器,广告sem是什么意思,烟台网站建设托管简单选择排序的介绍#xff1a;从给定的序列中#xff0c;按照指定的规则选出某一个元素#xff0c;再根据规定交换位置后达到有序的目的。简单选择排序的基本思想#xff1a;假定我们的数组为int [] arr new int[n]#xff0c;第一次我们从arr[0]~arr[n-1]中选择出最小的…简单选择排序的介绍从给定的序列中按照指定的规则选出某一个元素再根据规定交换位置后达到有序的目的。简单选择排序的基本思想假定我们的数组为int [] arr new int[n]第一次我们从arr[0]~arr[n-1]中选择出最小的值与arr[0]交换。第二次我们从arr[1]~arr[n-1]中选择出最小的值与arr[1]交换。第三次我们从arr[2]~arr[n-1]中选择出最小的值与arr[2]交换,...,第i次我们从arr[i-1]~arr[n-1]中选择出最小的值与arr[i-1]交换,...,第n-1次我们从arr[n-2]~arr[n-1]中选择出最小的值与arr[n-2]交换。我们总共进行n-1次的交换从而得到一个由小到大的排序序列。简单选择排序的思路详解例子原始的数组[101,34,119,1]经过第一次选择排序之后我们得到的数组1,[34,119,101]经过第二次选择排序之后我们得到的数组1,34,[119,101]经过第三次选择排序之后我们得到的数组1,34,101,[119]这个时候我们的序列已经有序了并且我们执行的次数一共是是4次(n-1)。针对上述的例子我们进行说明如下(1).选择排序一共有数组大小-1(n-1)轮排序(2).每一轮排序又是一个循环我们先假定每次循环的第一个数都是最小的数然后和后面的每个数进行比较如果发现有比当前更小的数就重新确定这个最小的数并且要得到这个数的下标。依次进行循环上述过程在代码中我会通过注释说明。下面的代码中我会将选择排序通过两种代码实现分步骤的实现整体的实现。在代码中我们测试的数组是[101,34,119,1](1).分步骤的实现选择排序public static void main(String[] args) {// TODO Auto-generated method stubint[] arr {101,34,119,1};selectSort(arr);}//选择排序public static void selectSort(int[] arr){//第一趟排序System.out.println(执行的第一趟排序);//首先我们要假设第一个元素是最小的并且记录最小元素的下标这里我们分别用min,minIndex表示。int min arr[0];int minIndex 0;for(int j 10;jif(minarr[j]){ //当我们的min值大于后面的数时说明min不是最小的这时候我们将min与最小的值交换并且让minIndex索引变成最小值的索引。min arr[j];minIndex j;}}//通过上面的交换我们可以得到这趟序列中最小的元素的值。//因为我们的第一个元素是我们指定的最小元素因此在找到比第一个元素更小的元素后我们应该让其与第一个元素交换。arr[minIndex] arr[0];arr[0] min;System.out.println(Arrays.toString(arr));//接下来的几趟排序与第一趟相同//第二趟排序System.out.println(执行的第二趟排序);min arr[1];minIndex 1;for(int j 11;jif(min arr[j]){min arr[j];minIndex j;}}arr[minIndex] arr[1];arr[1] min;System.out.println(Arrays.toString(arr));//第三趟排序System.out.println(执行的第三趟排序);min arr[2];minIndex 2;for(int j 12;jif(min arr[j]){min arr[j];minIndex j;}}arr[minIndex] arr[2];arr[2] min;System.out.println(Arrays.toString(arr));}上述代码我们得到的最终结果是(2).整体的代码实现public static void main(String[] args) {// TODO Auto-generated method stubint[] arr {101,34,119,1};selectSort(arr);}//选择排序public static void selectSort(int[] arr){//选择排序的算法//通过上面的分步我们可以知道可以通过循环嵌套来实现for(int i0;iint min arr[i];int minIndex i;for(int ji1;jif(minarr[j]){min arr[j];minIndex j;}}arr[minIndex] arr[i];arr[i] min;System.out.println(第(i1)趟排序的结果:);System.out.println(Arrays.toString(arr));}}上述代码我们得到最终的结果是但是还有一点值得注意的是观察我们第二趟的结果我们发现与第一趟的结果是相同的也就是说我们在进行选择排序的过程中可能出现第一个数就是最小的数这样的话我们可以不需要执行交换的代码因此选择排序的算法我们可以做进一步的优化优化代码如下(注释里面有解释)public static void main(String[] args) {// TODO Auto-generated method stubint[] arr {101,34,119,1};selectSort(arr);}//选择排序public static void selectSort(int[] arr){//选择排序的算法//通过上面的分步我们可以知道可以通过循环嵌套来实现for(int i0;iint min arr[i];int minIndex i;for(int ji1;jif(minarr[j]){min arr[j];minIndex j;}}if(minIndex ! i){ //我们通过比较minIndex与i的值来确定是否 最小值发生了改变如果没有改变我们不需要执行下面的代码。arr[minIndex] arr[i];arr[i] min;System.out.println(第(i1)趟排序的结果:);System.out.println(Arrays.toString(arr));}}}最终得到的结果如下
http://www.huolong8.cn/news/138154/

相关文章:

  • 网站建设的市场有多大工具型网站有哪些
  • 邢台网站建设优化茶叶网站设计
  • 九江有没有做网站的公司郑州小程序开发外包
  • 做网站做得好的公司有网站建设案例信息
  • 泉州刺桐古建筑公司网站德州百度推广公司
  • 宁波网站建设哪里有怎么做二次元网站源码
  • 偃师做网站制作游戏的软件有哪些
  • 大连网站优化步骤wordpress如何上线
  • seo网站技术培训深圳谷歌seo培训班
  • 女性手表网站开发网站做图文水印逻辑
  • 三亚做网站多少钱百度推广和网站建设
  • 手机有些网站打不开怎么解决安卓app开发需要学什么
  • 西安做网站云速网络如何联系网站站长
  • 黄金网站app软件下载安装西安网站建设创意
  • 为何有的网站打不开上海网站高端定制
  • 赣州网上注册公司网站中国商业银行官网
  • 360提交网站收录入口如何注册公司支付宝
  • 建设网站贵吗如何给网站做右侧导航
  • 杭州网站制作推荐网络规划与设计流程
  • 网站不备案有什么影响物流管理系统
  • 做不锈钢的网站有哪些百度商家入驻
  • 广东网站建设熊掌号软件工程毕业可以做网站吗
  • 做网站分几种斗门区建设局网站
  • 给网站做选题外包公司和劳务派遣
  • 聊城做网站价位网页制作软件 ad
  • 深圳建设厅官方网站如何进入微网站
  • 泰州专业做网站公司文件链接 win wordpress
  • 宁波网站制作维护小工程承包app
  • 免费搭建淘宝客网站网络技术网站
  • 网站建站图片asp.net网站本机访问慢