本帖最后由 大蓝鲸小蟀锅 于 2020-4-10 15:31 编辑
排序算法的介绍和分析
德艺双馨杨老师
我们介绍下和数组常见的算法 ---排序
我们下面要了解两种比较简单的数组排序算法 还要学会程序编写的方法也就是所谓的归纳写法
循环和数组单独其实并不难 但是把它们放在一起难度就会增加很多
下面我们讲解第一个排序---冒泡排序
public static void main(String[] args) {
//整型数组中数组请你按照从小到大的顺序 从新排列一下
int[] data={4,2,5,6,1}; //它从小到大应该是 {1,2,4,5,6}
//比如说我们经常涉及到的成绩排序 数据排序会涉及到一些排序算法,你用什么办法 先干什么 后干什么 数组就拍好顺序了
//排序算法是多种多样的 今天我们要讲的是所有的排序算法中最慢的两种 如果讲快的必然复杂度会高 我们从简单入手
//1 冒泡排序 : 在数组中让两个相邻的元素之间比较大小 比如a[1]和a[2]比较 如果 a[1]比a[2]小不动,
// 如果a[1]比a[2]大 就交换位置
int n=data.length;
for(int i=1;i<n;i++){//循环4次 n-1; 问句
for(int j=0;j<(n-i);j++){
if(data[j]>data[j+1]){//需要交换位置 这怎么去做? 借助中间变量。
int temp;
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
for (int i = 0; i < data.length; i++) {
System.out.print(data+" ");
}
}
讲解第二个排序---选择排序
public static void main(String[] args) {
int[] a={2,4,1,3};
for (int i = 0; i < (a.length-1); i++) {
for(int j=(i+1);j<a.length;j++){
if(a>a[j]){
int t;
t=a;
a=a[j];
a[j]=t;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a+" ");
}
}
总结:当我们在开发中去写排序的时候会用这两个算法吗
Arrays.sort(); 快速排序法
所以我们讲这两个算法的目的是 锻炼大家的归纳能力,第二点 作为一个程序员 一个软件方面的从业人员 总是应该应该了解一些排序算法 这是一个常识性的东西。这两个算法 极有可能在你们将来出去面试的笔试题中出现。
|
|