Java和Python分别实现直接选择排序

Posted 三一七零二

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java和Python分别实现直接选择排序相关的知识,希望对你有一定的参考价值。

1.基本思想

  将指定排序位置与其他数组元素分别对比,如果满足条件就进行交换。个人理解其实就是每趟循环从数组里选一个最大的值(最小的值)放到数组最后(最前)。

 

2.算法实现

  这里以每趟循环从数组中选择一个最大的值来实现。可知,只需进行 n-1次循环,便能完成排序。

  Java实现代码如下:

 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 < arr.length - 1;i++) {//循环n-1次,每次循环确定一个值的位置
11             int index = 0;
12             for(int j = 0;j < arr.length - i;j++) {//比较元素的个数每次会减少一个
13                 if(arr[index] < arr[j]) {//每次循环选择出一个最大的值,并用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 < arr.length;i++) { 
28             if(i < arr.length - 1) {
29                 System.out.print(arr[i]+"、");
30             }else {
31                 System.out.print(arr[i]);
32             }
33         }
34     }
35 }

 

 

Python代码实现如下:

# -*- 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("第{}次排序结果为:
".format(str(i+1)) + str(list1))
    return list1

if __name__ == __main__:
    lista = [63,4,24,3,1,15]
    list2 = SelectSort(lista)
    print("最终结果为:
"+str(list2))

 

以上是关于Java和Python分别实现直接选择排序的主要内容,如果未能解决你的问题,请参考以下文章

7种基本排序算法的Java实现

转载 排序

几种常见的排序算法分析学习

Python代码阅读(第40篇):通过两个列表生成字典

java方法的可变参数数组复制排序分类冒泡和选择排序搜索等常用方法实现

Java集合与数据结构 排序