java 选择排序 插入排序(以及数组的使用)

2、选择排序(Selection Sort)

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

2.1 算法描述

n个记录的直接选择排序可经过n-1趟直接选择排序得到有序结果。具体算法描述如下:
•初始状态:无序区为R[1…n],有序区为空;
•第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1…i-1]和R(i…n)。该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1…i]和R[i+1…n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区;
•n-1趟结束,数组有序化了。
在这里插入图片描述
课堂练习
问题:给8各同学的成绩排序
分析:将整个数列分为有序区和无序区,选出最小的额排在前面,然后也是两个两个数字比较,小的那个数字继续往后比,一轮之后就选出了倒数第二小的额,放在第二个位置上
这样有序区就逐渐增大。

int []a= {80,60,90,45,100,88,59,98};
	Sortl(a);
	}
	static void select Sort(int[]a) {		
for (int i=0;i<a.length-1;i++) {int min=1;
for (int j=i+1;j<a.length;j++) {
	if (a[min])>a[j] {min=j;}}
if(min!=0) {int temp;
          temp=a[i];
          a[i]=a[min];
          a[min]=temp;
}}

插入排序
插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

算法描述

一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:
•从第一个元素开始,该元素可以认为已经被排序;
•取出下一个元素,在已经排序的元素序列中从后向前扫描;
•如果该元素(已排序)大于新元素,将该元素移到下一位置;
•重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
•将新元素插入到该位置后;
•重复步骤2~5。
在这里插入图片描述
分析:第一个元素默认已经排好序,从下一个元素开始与拍好的数对比,大于新元素的往后,直至小于或等于该元素时将新元素插入后面,以此循环
代码

int []a= {80,60,90,45,100,88,59,98};
	insertsort(a);
}
	static   void   insertsort(int[]a) {
		for (int i=0;i<a.length-1;i++) {int current=a[i+1];
		int j=i;
		while (j>0 && a[j]>current {a[j+1]=a[j];j--;}
		a[j+1]=current;
		}

发布了28 篇原创文章 · 获赞 1 · 访问量 1706

猜你喜欢

转载自blog.csdn.net/qq_45870494/article/details/103338529