1. 程式人生 > >簡單選擇排序(simple Selection Sort)

簡單選擇排序(simple Selection Sort)

演算法思想:每一趟從待排序的記錄中選出關鍵字的最小記錄,按照順序放在已排序的記錄序列的最後,直到全部排完。

時間複雜度:O(n^2)–兩層迴圈,並沒有優化的方法。
空間複雜度:O(1)—–記錄交換時候需要一個輔助空間

演算法特點:穩定性可以控制。可以用鏈式儲存。記錄移動次數較小。時間複雜度較高。

不多BB,直接上程式碼:

#include <iostream>
#include <stdio.h>
using namespace std;
void EasySelectionSort(int* original,int length)
{
    int i,j,temp;
    int
minest=0; for(i=1;i<=length;i++) { minest=original[i]; for(j=i+1;j<=length;j++)//i位置後面的記錄組中進行迴圈打擂,如果找到比original更小的數,就與之交換。 if(original[j]<minest) { temp=minest; minest=original[j]; original[j]=temp; } } } int
main() { int paixu[100]={0}; int i,n; paixu[0]=0; for(i=1;i<100;i++) { scanf("%d",&paixu[i]); if(getchar()=='\n') break; else continue; } n=i; EasySelectionSort(paixu,n); printf("排序後的結果:\n"); //輸出排序後的陣列 for(i=1
;i<=n;i++) { printf("%d ",paixu[i]); } printf("\n"); return 0; }

總結:沒有比這更簡單更容易實現的排序演算法了。主要用於理解後面的堆排序演算法。

相關推薦

排序演算法(三):簡單選擇排序Simple Selection Sort

基本思想: 在要排序的一組數中,選出最小(或者最大)的一個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元素(最後一個數)比較為止。 簡單選擇排序的示例: 操作方法: 第一趟,從n

003.選擇排序簡單選擇排序Simple Selection Sort

#include <stdlib.h>#include <stdio.h>#define  aray_num 10void printfArray(int list[]){    int i;    for(i=0; i<aray_num-1; i++)    {       

簡單選擇排序simple Selection Sort

演算法思想:每一趟從待排序的記錄中選出關鍵字的最小記錄,按照順序放在已排序的記錄序列的最後,直到全部排完。 時間複雜度:O(n^2)–兩層迴圈,並沒有優化的方法。 空間複雜度:O(1)—–記錄交換時候需要一個輔助空間 演算法特點:穩定性可以控制。可以用鏈式

排序演算法---簡單插入排序Simple insertion sort

簡單插入排序是由n-1趟排序組成,簡單來說,就是假定一個長度為n的陣列,把第0位作為起始位,並認為有序(只有一個元素嘛),然後遍歷從1到n-1下標的元素,每次遍歷一個進行一次排序,直到n-1趟排序完成,這個排序的演算法複雜度最優的情況下,為O(n),最壞的情況下還是O(n的平方); 程式碼如

資料結構-簡單選擇排序含全部程式碼

   函式分析如下: SelectSort(SqList &L) 引數:順序表L 功能:排序(預設升序)空間複雜度:O(1) 時間複雜度:O(n方)                           穩定性:不穩定 思想:假設第i個值為當前最小值(0到i-1已經為

簡單選擇排序C語言版本

基本思想:在陣列中找到最小的數,將其放置到第一個位置,第二小的數,放在陣列中的第二個位置,依次類推。在寫程式碼的開始,竟然與冒泡法的原理混淆,需要注意。 程式碼: #include<stdio.h> #include<windows.h> int

資料結構 簡單選擇排序C語言實現

       選擇排序的基本思想:每一趟在n-i+1(i=1,2,3,…,n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。 演算法思想       第一趟簡單選擇排序時,從第一個記錄開始,通過n-1 次關鍵字比較,從n 個記錄中選出關鍵字最小的記錄,並和第

資料結構:八大排序簡單選擇排序選擇排序

1、演算法思想:在待排記錄中依次選擇關鍵字最小的記錄新增到有序序列中,逐漸縮小範圍直至全部記錄選擇完畢。每一趟從待排的無序區中選出關鍵字最小的記錄,順序放在已排好序的子序列的最後,直至記錄全部排完。 2、複雜度:直接選擇排序的時間複雜度為O(n2)。空間複雜度 O(1) 穩

氣泡排序順序表簡單選擇排序單鏈表

河南理工大學 16 學年—17學年第 1 學期 資料結構 實驗任務書 專業名稱:              實驗學時:    2     課程名稱:資料結構      任課教師:  翟海霞      實驗題目:     排序演算法實現與比較             實驗環境:    Visual C+

簡單選擇排序O(n2)

/*徐子峰大帥哥 哈哈哈哈哈*/ /*日期:2017-11-12*/ #include <iostream> using namespace std; void Selec

八大排序演算法之三簡單選擇排序c語言

選擇排序—簡單選擇排序(Simple Selection Sort) 基本思想: 在要排序的一組數中,選出最小(或者最大)的一個數與第1個位置的數交換;然後在剩下的數當中再找最小(或者最大)的與第2個位置的數交換,依次類推,直到第n-1個元素(倒數第二個數)和第n個元

簡單選擇排序直接選擇排序

【分類】  選擇類排序 【基本思想】  每一趟從待排序的資料元素中選出最小(最大)的元素,順序放在待排序的數列最前,直到全部待排序的資料元素全部排完。 【特點】  資料結構:陣列  穩定性:不穩定 【過程】  初始關鍵字:『 8,5,2,6,9,3,1,4,0

直接插入排序Straight Insertion Sort

temp wap 序表 maxsize 得到 進行 efi size 長度 直接插入排序(Straight Insertion Sort)的基本操作是將一個記錄插入到已經排好序的有序表中,從而得到一個新的、記錄數增1的有序表。 /* 對順序表L作直接插入排序 */ v

九大排序演算法之選擇排序原理及實現

1、演算法思想:選擇排序,從頭至尾掃描序列,找出最小的一個元素,和第一個元素交換,接著從剩下的元素中繼續這種選擇和交換方式,最終得到一個有序序列。 2、演算法過程 舉個栗子(第一趟的排序過程) 原始序列:49、38、65、97、76、13、27、49 1)在進行選擇排

直接插入排序Straight Insertion Sort- java實現

學習自嚴蔚敏、吳偉民的《資料結構》-清華大學出版 最簡單的排序方法。基本操作是將一個記錄插入到已排序好的有序表中,從而得到一個新的、記錄數增1的有序表。 先看程式碼: public static int[] insertSort(int[] arr) { for

折半插入排序Binary Insertion Sort- java實現

學習自嚴蔚敏、吳偉民的《資料結構》-清華大學出版  在上一篇有關直接插入排序中,當待排序記錄的數量n很小時,這是一種很好的排序方法。但是,通常待排序的序列中的記錄數量n很大,則不宜採用直接插入排序。為此,在此基礎上,從減少“比較”、“移動”這兩種操作的次數著眼,可以使用

演算法與資料結構(十三) 氣泡排序、插入排序、希爾排序選擇排序Swift3.0版

本篇部落格中的程式碼實現依然採用Swift3.0來實現。在前幾篇部落格連續的介紹了關於查詢的相關內容, 大約包括線性資料結構的順序查詢、折半查詢、插值查詢、Fibonacci查詢,還包括數結構的二叉排序樹以及平衡二叉樹的構建與查詢,然後還聊了雜湊表的構建與查詢。接下來的幾篇部落格中我們就集中的聊一下常見的集中

簡單線性迴歸Simple Linear Regression

1、簡單線性迴歸模型舉例: 汽車賣家做電視廣告數量與賣出的汽車數量: 如何訓練適合簡單線性迴歸模型的最佳迴歸線? 使sum of squares最小 計算 分子 = (1-2)(14-20)+(3-2)(24-20)+(2-2)(18-20)+(1-2)(17-2

Java程式碼:陣列選擇排序 升序降序

public class test9 {public static void main(String[] args){int []a={12,2,45,65,99,3,21};System.out.println("原陣列為:"+"\n"+a[0]+"\t"+a[1]+"\t

簡單工廠模式simple factory pattern

vs2005+C#+.net 2.0  using System;using System.Collections.Generic;using System.Text;namespace SimpleFactoryPattern...{    publicclass S