算法笔记 选择排序

news/2024/7/6 5:56:09

 

上代码

let  data = [156,141,111,94,88,61,35];
let findSmallest = function(arr) {  // 找出数组中最大的值
	let smallest = arr[0]; // 存储最大的值
	let smallest_index = 0;  // 最大值的索引
	for(let i = 0; i < arr.length; i++ ) {
		if(smallest < arr[i]){   
			smallest = arr[i]
			smallest_index = i
		}
	}
	return smallest_index 
}

let selectionStot =  function (arr) {   // 返回排序好的数组
	let newArr = [];
	let index = arr.length
	for(let i = 0; i < index; i++) {
		console.log(i)
		let smallest = findSmallest(arr)
		newArr.push(arr[smallest])
		arr.splice(smallest,1)
	}
	return newArr
}
console.log(selectionStot(data))

书上是Python 代码 转换成了js  但是这样怪怪的 

 

改成一个 

 let data = [156, 141, 111, 94, 88, 61, 35];
 let findSmallest = function(arr) { 
 	let smallest; // 存储最大的值
 	for (let i = 0; i < arr.length; i++) {
 		//外层循环一次,就拿arr[i] 和 内层循环arr.legend次的 arr[j] 做对比
 		for (let j = i; j < arr.length; j++) {
 			if (arr[i] < arr[j]) {
 				//如果arr[j]大就把此时的值赋值给最大值变量smallest
 				smallest = arr[j];
 				arr[j] = arr[i];
 				arr[i] = smallest;
 			}
 		}
 	}
 	return arr
 }

 console.log(findSmallest(data))

 

空间复杂度 O(n²)


http://www.niftyadmin.cn/n/3655862.html

相关文章

Windows Mobile 5.0横竖屏自识别技术

前不久我编写了一个基于Windows Mobile 5.0的参赛程序《北京2008奥运场馆速查》&#xff0c;可惜当时那个程序并不支持横竖屏自动识别&#xff0c;后来看了参赛的规则&#xff0c;原来这一个功能是必须实现的&#xff0c;所以今天抽出时间又把这方面的内容给添加了进去。V1.0.0…

算法笔记---- 递归和栈

递归 程序调用自身的编程技巧就称之为递归&#xff08;recursion&#xff09;&#xff0c;就是再运行的过程中调用自己&#xff0c;本质上就是循环. 每个递归函数都有两个部分: 基线条件 和 递归条件&#xff0c; 递归条件 &#xff1a; 函数调用自己 基线条件&#xff1…

C# API方式串口读写

在调试ICU通信设备的时候&#xff0c;由于串口通信老出现故障&#xff0c;所以就怀疑CF实现的SerialPort类是否有问题&#xff0c;所以最后决定用纯API函数实现串口读写。先从网上搜索相关代码&#xff08;关键字&#xff1a;C# API 串口&#xff09;&#xff0c;发现网上相关的…

Windows Mobile 5.0编程—奥运场馆速查

虽然前不久买了一个HP基于windows Mobile 5.0的PDA&#xff0c;由于工作太为繁忙&#xff0c;并没有为之开发相应的程序。没想到微软最近开展了酷炫应用争霸赛,征集“奥运”相关的作品&#xff0c;我忙里偷闲&#xff0c;用VS2005开发了一个关于奥运场馆的小程序&#xff0c;时…

算法笔记 ----- 快速排序

理解部分 D&C 策略&#xff01; D&C算法是递归的。使用D&C解决问题的过程是分为两个步骤&#xff1a; 1 、找到基线条件&#xff0c;这种条件必须尽可能的简单 2、不断的将问题分解(或者说是缩规模), 直到符合基线条件。 D&C并非是解决问题的算法&#xff0c;…

.Net Micro Framework研究—窗体控件

试验平台&#xff1a;.Net Micro Framework 模拟器在Microsoft.SPOT.Presentation.Controls命名空间里&#xff0c;也就如下几个控件&#xff08;姑且称为控件吧&#xff09;&#xff0c;Panel、StackPanel、Text、TextFlow、Image、ListBox、ScrollViewer 其中仅有Panel、Text…

.Net Micro Framework研究—绘图

试验平台&#xff1a;.Net Micro Framework 模拟器目前在VS2005的环境里&#xff0c;还不支持.Net Micro Framework界面的所见即所得绘制&#xff0c;界面制作有三种方式&#xff0c;一是窗体直接绘图&#xff0c;二是Panel形状对象、三是窗体控件。第一种做法让人觉得又回到了…

算法学习笔记----散列表

1.散列函数 散列函数&#xff1a;无论你给它什么数据&#xff0c;它都还你一个数字。 散列函数 将输入映射到数字。你可能认为散列函数输出的数字没什么规律&#xff0c;但其实散列函数必须满足一些要求。 1、它必须是一致的。例如&#xff0c;假如你输入apple时得到的是4&…