1. 程式人生 > >資料結構與演算法-----選擇排序-----直接選擇排序

資料結構與演算法-----選擇排序-----直接選擇排序

package jzoffer;

public class DirectSelectionSort {
	public static void main(String[] args) {
		int [] R = {10,9,8,7,6,5,4,3,2,1};
		System.out.println("原始陣列如下:");
		printList(R);
		DirectSelectionSort(R);
		System.out.println("經過直接選擇排序後陣列如下:");
		printList(R);
		
	}	
	private static void printList(int [] a){
		for(int i =0;i<a.length;i++){
			System.out.print(a[i]+" ");
		}
		System.out.println("");
	}
	public static void DirectSelectionSort(int [] str){
		int min = 0;
		for(int i = 0;i<str.length-1;i++){
			min = str[i];
			for(int j =i+1;j<str.length;j++){
				if(str[i] > str[j]){
					min = str[j];  
                    str[j] = str[i];  
                    str[i] = min;
				}
			}
		}
	}

}

相關推薦

資料結構演算法】連結串列——遞增排序

今天看書時偶然想到的問題,書上是要求將一個數據插入一個有序連結的線性連結串列中, 所以我想先進行連結串列內的資料排序在進行插入資料。 在這裡我只寫了排序的函式。   函式實現: void Sort(LinkList&list, int &n) {   f

Android版資料結構演算法(八):二叉排序

本文目錄 前兩篇文章我們學習了一些樹的基本概念以及常用操作,本篇我們瞭解一下二叉樹的一種特殊形式:二叉排序樹(Binary Sort Tree),又稱二叉查詢樹(Binary Search Tree),亦稱二叉搜尋樹。 一、二叉排序樹定義 二叉排序樹或者是一顆空樹,或者是具有下列性質的二叉樹:

資料結構演算法題目集7-12——排序

我的資料結構與演算法題目集程式碼倉:https://github.com/617076674/Data-structure-and-algorithm-topic-set 原題連結:https://pintia.cn/problem-sets/15/problems/720 題目描述:

資料結構演算法分析之----各種常用排序詳解

package cn.qunye.Sort_排序; import java.util.ArrayList; import java.util.List; /** * 合併排序: * 將待排序元素分成大小大致相同的兩個子集合,分別對兩個子集進行合併排序,最終將排好序的子集合併成所要求的排好序的集合 *

資料結構演算法之三 深入學習排序

視訊課堂https://edu.csdn.net/course/play/7621 在本章中,你將學習: 通過使用快速排序來排序資料 通過使用歸併排序來排序資料 快速排序演算法

資料結構演算法(2)-簡單排序

一,氣泡排序 package ch02; /** * 氣泡排序 * @author Administrator * */ public class BubbleSort { public static void sort(long[] arr){ long t

資料結構演算法(八):排序

## 什麼是排序? >排序是計算機內經常進行的一種操作,其目的是將一組“無序”的記錄序列調整為“有序”的記錄序列。 ### 1.排序的分類 排序分為兩類: - 內部排序:若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。 - 外部排序:若參加排序的記錄數量很大,整個序列的排序過程不可能

資料結構演算法-----選擇排序-----直接選擇排序

package jzoffer; public class DirectSelectionSort { public static void main(String[] args) { int [] R = {10,9,8,7,6,5,4,3,2,1}; Syst

資料結構演算法》之排序演算法(氣泡排序選擇排序

排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇

python 資料結構演算法 day04 選擇排序

1. 選擇排序 原理:從後面無序序列中選出最小的元素放在有序序列的後面,第一次先把第一個位置元素作為比較的物件,從後面n-1個元素中選出最小的那個元素 跟第一個位置元素進行交換,然後令第二個位置作為比較的物件,從後面n-2個元素中選最小的元素,跟第二個位置元素進行交換,,,以此類推;   下面

資料結構演算法C++之選擇排序

本篇文章是使用C++實現的選擇排序演算法,演算法複雜度為O(n2) 選擇排序演算法初始時在序列中找到最小元素,放到序列的起始位置作為已排序序列;然後,再從剩餘未排序元素中繼續尋找最小元素,放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 如上圖陣列中有8個元素,首先將第一個元素

09_資料結構演算法_選擇排序_Python實現

""" 選擇排序: 思路: 遍歷整個列表,找到最小項的位置。 如果該位置不是列表的第一個位置,演算法就會交換這兩個位置的項; 然後演算法回到第二個位置並重復這個過程 """ import random #定義一個交換函式 d

java版資料結構演算法選擇排序

/** * 選擇排序:時間複雜度O(n^2), * 比氣泡排序稍好點,交換次數少 */ class ArraySelect { public static void selectSort(int arr[]){ for(int i=0;i<arr.leng

java資料結構演算法_____選擇排序

import java.util.Arrays; /** * @author God *選擇排序(Selection sort)是一種簡單直觀的排序演算法。 *它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素, *存放在序列的起始位置,直到全部待排序的資料元素排完

資料結構演算法-簡單選擇排序

概要 選擇排序法初步思想 基本概念 java程式碼實現 圖示執行過程 時間複雜度分析 選擇排序法初步思想 愛炒股票斷線的人,總是喜歡不斷的買進賣出,想通過價

資料結構演算法--排序(冒泡、選擇、歸併、快速排序、堆排序

/** * 氣泡排序 * @param arr */ function bubbleSort(arr) { let len = arr.length; for (let i =0; i < arr.len; i++) { for (l

資料結構演算法篇 之冒泡,插入,選擇排序

排序演算法其實有很多,比如猴子排序,睡眠排序,麵條排序,聽都沒聽過。。。。。。。 其中最經典的自常用的是:氣泡排序,插入排序,選擇排序,歸併排序,快速排序,計數排序,基數排序,桶排序 排序演算法裡面一般第一個接觸的就是氣泡排序,然後就是選擇排序,插入排序,這幾個簡單的

修煉內功---資料結構演算法10---選擇排序

選擇排序演算法的實現思路有點類似插入排序 也分已排序區間和未排序區間 但是選擇排序每次會從未排序區間中找到最小的元素,將其放到已排序區間的末尾 <?php /** * 選擇排序演算法實現 */ function selection_so

資料結構演算法 (五) 選擇排序

1.演算法思想       選擇排序的演算法思想是:每次從待排序的記錄中選出排序碼最小的記錄,再在剩下的記錄中選出次最小的記錄,重複這個選擇過程,直到完成全部排序 2.演算法實現 sort.h typedef int ElementType; struct

資料結構演算法(2)排序演算法,用Python實現插入,選擇,堆排,冒泡,快排和歸併排序

前段時間鼓起勇氣和老闆說了一下以後想從事機器學習方向的工作,所以最好能有一份不錯的實習,希望如果我有好的機會他可以讓我去,沒想到老闆非常通情達理,說人還是要追尋自己感興趣的東西,忙完這陣你就去吧。所以最