選擇排序演算法(Selection Sort)
選擇排序: 每一趟從待排序的資料元素中選出最小(或者最大)的一個元素,順序放在已經排好序的數列的後面,直到全部待排序的資料元素排完。 案例: 初始陣列資源【63 4 24 1 3 15】 第一趟排序後【15 4 24 1 3】 63 第二趟排序後【15 4 3 1】 24 63 第三趟排序後【 1 4 3】15 24 63 第四趟排序後【 1 3】 4 15 24 63
// 定義方法實現選擇排序
publicstaticvoid selectionSort(int[] array){
int count =1;
while(count >=1){
int index =0;
int max = array[0];
for(int i =1; i <= array.length - count; i++){
if(max < array[i]){
max = array[i];
index = i;
}
}
int temp = array[
array[array.length - count]= max;
array[index]= temp;
count++;
if(count == array.length -1){
break;
}
}
}
}
publicclassSelectSort{
publicstaticvoid main(String[] args){
int[] array ={63,4,24,1,3,15};
System.out.println("排序前:");
for(int i : array){
System.out.print(i +"\t");
}
System.out.println();
selectionSort(array);
System.out.println("排序後:");
for(int i : array){
System.out.print(i +"\t");
}
}
// 定義方法實現選擇排序
publicstaticvoid selectionSort(int[] array){
int count =1;
while(count >=1){
int index =0;
int max = array[0];
for(int i =1; i <= array.length - count; i++){
if(max < array[i]){
max = array[i];
index = i;
}
}
int temp = array[array.length - count];
array[array.length - count]= max;
array[index]= temp;
count++;
if(count == array.length -1){
break;
}
}
}
}
相關推薦
選擇排序演算法(Selection Sort)
【選擇排序演算法基本思想和案例】 選擇排序: 每一趟從待排序的資料元素中選出最小(或者最大)的一個元素,順序放在已經排好序的數列的後面,直到全部待排序的資料元素排完。 案例:
C++ 雙向氣泡排序演算法(Shaker Sort)
一、概念(來源於百度百科) 傳統冒泡演算法原理 氣泡排序演算法的運作如下:(從後往前) &nbs
簡單選擇排序演算法(泛型)
main.cpp #include "SelectSort.h" int main() { int r[8] = {0,49,27,65,97,76,13,38}; SelectSort(r, 7); return 0; } SelectSort.h #includ
十大經典排序演算法之選擇排序(Selection Sort)
選擇排序(Selection-sort)是一種簡單直觀的排序演算法。 它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 2.1 演算法描
選擇排序(Selection sort)
選擇排序算是對氣泡排序的一種改進:假設有n個待排列的資料,在第一輪遍歷中,仍進行n - 1次比較,遍歷的時候用當前數與當前獲得的最大數進行比較,而不是相鄰的資料進行比較,且僅進行一次資料交換。而氣泡排序在每一次比較的過程中,發現數據順序不一致就交換,資料交換的次數更多。選擇排序只需要用標記記住每一輪的最大數,
一、選擇排序(Selection sort)
一、選擇排序 選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素
算法系列——選擇排序(Selection Sort)
選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。時間複雜度是O(n^2)。 在完全隨機陣列的條件下
(排序演算法)linux c語言實現選擇排序演算法(氣泡排序的略微改進版)
快速排序演算法和氣泡排序演算法是差不多的,都是要兩層迴圈,外迴圈是要比較的個數,其實就是元素的個數,內迴圈就是外層那個標記和其他的比較大小, 氣泡排序是相鄰的兩個,兩兩比較,最後交換出一個最大或者最小值, 快速排序是在氣泡排序的基礎上,找出那個最小的或者最大的,但是不是直接交換,
排序演算法(sorting algorithm)之 插入排序(insertion sort)
https://en.wikipedia.org/wiki/Insertion_sort loop1: 4,6,1,3,7 -> 4,6,1,3,7 loop2: 4,6,1,3,7 -> 4,1,6,3,7 &nb
六大經典排序演算法(Java版):冒泡、選擇、插入、希爾、快速、歸併
/** * @author Darren * @Date 2016-10-17 */ public class Main { public static void main(String[] args) { int[] ars = {
python 實現 列表 選擇排序 演算法(兩種方法實現)
方法一:(remove方法) arr = [2, 3, 5, 6, 4, 1, 9] #找出最小元素 def findsmallest(arr): smallest = arr[0] #假設第一個元素為最小值 for i in range(1,len(arr)):
經典排序演算法(Java版)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java中常用的排序演算法(動態演示)
1.前言 這篇文章講解的是Java中或者面試中常用的**排序演算法**。 文章中例項 [linhaojian的Github](https://github.com/linhaojian 2.複雜度 相關概率
十大經典排序演算法(附程式)
轉自https://www.cnblogs.com/onepixel/articles/7674659.html 0、演算法概述 0.1 演算法分類 十種常見排序演算法可以分為兩大類: 非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破O(nlog
實現奇偶數排序演算法(JAVA實現)
給定一個整數陣列,請調整陣列的順序,使得所有奇數位於陣列前半部分,所有偶數位於陣列後半部分,時間複雜度越小越好。 package com.sort; import java.util.Arrays; public class TestSort { /** * 測試方法 * @par
排序演算法(Java隨筆)—歸併排序
歸併排序(Merge Sort):將多個有序資料表合併為一個有序資料表,如果被合併的資料表只有兩個,則叫二路歸併。 二路歸併排序的原理步驟: 將長度為n的原資料表分割為n個長度為1的子表,兩兩合併得
資料結構常見的八大排序演算法(詳細整理)
2018年11月01日 21:38:04 雲淡風輕_737711464 閱讀數:3 個人分類: 資料結構
(排序演算法)linux c語言實現簡化版本的插入排序演算法(二分插入)
二分插入演算法是在已經排序好的序列裡插入一個元素,是穩定的演算法,關鍵詞是折中。 比如說我要在12345678910裡插入一個3,那麼我先看看中間的數比3大,還是比3小,要是比3大,我就去後一半,如果是比3小,我就去前一半,現在進入某個一半後,再做如此操作,最後將其他的元
排序演算法(python實現)
排序演算法一共有2類: 演算法時間fuzh複雜讀與nlogn比較,大為非線性類,小為線性類; 非線性類比較類排序有:交換排序(冒泡,快速),插入排序(簡單插入,shell),歸併排序(2路歸併,多路歸併),選擇排序(簡單選擇,堆排序);
歸併排序演算法(C語言)
歸併排序: 思想:利用將兩個的有序資料序列合併成一個新的有序資料序列,在如何分成兩個有序資料的問題下,採用分治演算法。 時間複雜度:O(n*logn) 空間複雜度:O(n) 是否穩定: 穩