选择排序
来源:互联网 发布:java split 效率 编辑:程序博客网 时间:2024/06/08 17:25
转载请注明出处:http://blog.csdn.net/u012572172/article/details/41324823
选择排序(Selection Sort)是一种简单直观的排序算法。工作原理如下:首先在未排序序列中找到最大(小)的元素,存放到序列的起始位置,然后再从剩余未排序序列中继续查找最大(小)的元素,然后存放到已排序序列的末尾。以此类摧,直到所有元素排序完毕。
选择排序的主要优点与移动数据有关,如果某个元素位于正确的位置上,则它不会被移动。
主要步骤:
1.从序列开始到结尾查找最小的元素并存放到第一个位置。
2.从剩余序列查找最小元素,存放到已排序序列末尾。
3.重复第二步操作,直到全部元素有序。
选择排序示意图:
代码实现:
C语言代码:
#include <stdio.h>#include <stdlib.h>#define N 10int main(){ int i, j, k, temp; int arr[N] = {36, 58, 12, 59, 65, 96, 39, 68, 24, 86}; for(i=0; i<N-1; i++) { k = i; for(j=i+1; j<N; j++) { if(arr[j] < arr[k]) { k = j; } } if(k != i) { temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } for(i=0; i<N; i++) { printf("%-3d", arr[i]); } printf("\n"); return 0;}Java代码:
import java.util.Arrays;public class SelectionSort {public static void main(String[] args) {int arr[] = {36, 58, 12, 59, 65, 96, 39, 68, 24, 86};for(int i=0; i<arr.length-1; i++) {int k = i;for(int j=i+1; j<arr.length; j++) {if(arr[j] < arr[k]) {k = j;}}if(k != i) {int temp = arr[i];arr[i]= arr[k];arr[k] = temp;}}System.out.println(Arrays.toString(arr));;}}参考资料:维基百科
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- Java中的工具类和新特性
- 微软Connect教程系列—VS2015集成新潮工具(四)
- 软件工程第二次作业
- 霍夫变换
- STL容器:序列容器关联容器
- 选择排序
- Cocos2d-X 坐标系(3.2版本)
- TCP/IP模型
- Arduino学习笔记1
- Search for a Range
- java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
- spring配置文件详解
- UML五种关系
- IOS代理 protocol最简单的实例,没有之一。。