Java和Python分别实现直接选择排序
2021-07-01 05:05
标签:war 循环 font 一个 return style .so 交换 sele 1.基本思想 将指定排序位置与其他数组元素分别对比,如果满足条件就进行交换。个人理解其实就是每趟循环从数组里选一个最大的值(最小的值)放到数组最后(最前)。 2.算法实现 这里以每趟循环从数组中选择一个最大的值来实现。可知,只需进行 n-1次循环,便能完成排序。 Java实现代码如下: Python代码实现如下: Java和Python分别实现直接选择排序 标签:war 循环 font 一个 return style .so 交换 sele 原文地址:https://www.cnblogs.com/xiang9286/p/9638548.html 1 public class SelectSort {
2 public static void main(String[] args) {
3 int arr[] = {64,4,24,1,3,15};
4 SelectSort sorter = new SelectSort();
5 sorter.sorted(arr);
6 }
7
8
9 public void sorted(int arr[]) {
10 for(int i = 0;i //循环n-1次,每次循环确定一个值的位置
11 int index = 0;
12 for(int j = 0;j //比较元素的个数每次会减少一个
13 if(arr[index] //每次循环选择出一个最大的值,并用index标记位置
14 index = j;
15 }
16 }
17 //实现指定位置与index标记位置的元素交换
18 int temp = arr[arr.length-i-1];
19 arr[arr.length-i-1] = arr[index];
20 arr[index] = temp;
21 }
22 showArray(arr);
23 }
24
25
26 public void showArray(int arr[]) {
27 for(int i = 0;i ) {
28 if(i ) {
29 System.out.print(arr[i]+"、");
30 }else {
31 System.out.print(arr[i]);
32 }
33 }
34 }
35 }
# -*- coding: utf-8 -*-
def SelectSort(list1):
for i in range(len(list1)-1)://循环n-1次
index = 0
for j in range(len(list1)-i)://比较元素个数随循环次数递减
if lsit1[index] list1[j]:
index = j
temp = list1[len(list1)-1-i]
list1[len(list1)-1-i] = list1[index]
list1[index] = temp
print("第{}次排序结果为:\n".format(str(i+1)) + str(list1))
return list1
if __name__ == ‘__main__‘:
lista = [63,4,24,3,1,15]
list2 = SelectSort(lista)
print("最终结果为:\n"+str(list2))
下一篇:Java面试题乱笔