Java学习笔记之数组排序算法

写在前面:

编程的本质就是对数据(信息以数据的形式而存在)的处理,实际编程中不得不处理大量数据,因此实际动手编程之前必须先分析处理这些数据,处理数据之间存在的关系。数据元素之间存在的关联关系被称为数据的逻辑结构。

逻辑结构大致可分为4种:

1、集合:数据元素之间只有“同属一个集合”的关系。

2、线性关系:数据元素之间存在一个对一个的关系。

3、树形结构:数据元素之间存在着一个对多个的关系。

4、图形结构或网状结构:数据元素之间存在着多个对多个的关系。

而同一种逻辑结构,在计算机底层通常有两种物理存储结构:

1、顺序存储结构——一堆数组。

2、非顺序存储结构——链表、散列结构。

算法的设计就取决于以上逻辑结构,算法的实现依赖于数据的存储结构。

排序算法分类:内部排序和外部排序。

内部排序:不需要借助外部存储器,整个排序过程都在内存中完成。

外部排序:数据量非常大,因此计算机无法把数据放在内存中完成排序,需要借助外部存储器如硬盘来完成排序过程,常见的主要是过路归并排序。外部排序可以认为是由多次内部排序完成。

常见的内部排序:

1、选择排序:直接选择排序、堆排序。

2、交换排序:冒泡排序、快速排序。

3、插入排序:直接插入排序、Shell排序、折半插入排序。

4、归并排序

5、桶式排序

6、基数排序

直接选择排序的基本过程:

1、在一组数组元素Array[i~n]中选择一个最小元素i。

2、若它不是这组元素中的第一个元素,则将它与这组元素中的第一个元素对调。

3、找到最小元素,在其余数组元素中重复1、2步直到剩余一个元素。

int[] array = { 12, 65, 18, 9, 0, -5, -33, 100, 22, -40 };
		System.out.println("排序前" + "\n" + Arrays.toString(array));
		System.out.println("排序后");
		for (int i = 0; i < array.length - 1; i++) {
			int t = i;// 先假设下表为t的数为最小
			for (int j = i; j < array.length; j++) {
				if (array[t] > array[j]) {
					t = j;
				}
			}
			if (t != i) {
				int temp = array[t];
				array[t] = array[i];
				array[i] = temp;
			}
			System.out.println(Arrays.toString(array) + "\t" + i + "\t" + t);
		}

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值