真題2003 2016 單鏈表的簡單選擇排序
題目:知單鏈表的結點結構為Data next
下列演算法對帶頭結點的單鏈表L進行簡單選擇排序,使得L中的元素按值從小到大排列。
(可用文字說明該演算法的基本思想及執行的過程,10分)
演算法思想:每趟找出一個最小的元素
void Select_Sort(LinkList L){ LinkList p,q,min; //定義指標 Elemtypeype temp; p= L->next ; while(p!=NULL) { min=p; q=p->next; while(q!=NULL){ if(min->data>q->data )min=q; q=q->next; } if(p!=min){ temp=p->data; p->data=min->data; min->data=temp; } p=p->next ; } }
下列演算法對不帶頭結點的單鏈表L進行簡單選擇排序,使得L中的元素按值從小到大排列。
王道p303
相關推薦
真題2003 2016 單鏈表的簡單選擇排序
題目:知單鏈表的結點結構為Data next 下列演算法對帶頭結點的單鏈表L進行簡單選擇排序,使得L中的元素按值從小到大排列。 (可用文字說明該演算法的基本思想及執行的過程,10分) 演算法思想:每趟找出一個最小的元素 void Select_Sort(Link
迴圈單鏈表簡單選擇排序
#include <stdio.h> #include <stdlib.h> typedef struct LNode{ int data ; struct LNode *next ; }LNode , *LinkList; Lin
單鏈表 簡單題(單鏈表基本操作)
題目描述: 有一個帶頭結點的單鏈表L=(a1,b1,a2,b2,......an,bn),設計一個演算法將其拆分成兩個帶頭結點的單鏈表L1和L2,其中L1=(a1,a2,a3...an),L2=(b1,b2,b3....bn),要求L1使用L的頭結點。 解題思路: 利用原單鏈表L中的所有
氣泡排序(順序表)和簡單選擇排序(單鏈表)
河南理工大學 16 學年—17學年第 1 學期 資料結構 實驗任務書 專業名稱: 實驗學時: 2 課程名稱:資料結構 任課教師: 翟海霞 實驗題目: 排序演算法實現與比較 實驗環境: Visual C+
Java 單鏈表簡單實現
pre println ret 返回 .data del span 鏈表 font 實現功能並不完全,只有添加,刪除,和遍歷功能,後續還會繼續添加 定義節點屬性 class Node{ //定義節點屬性 public int Data; public No
刷題筆記12——單鏈表反轉
題目描述 輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。 方法1:就地反轉連結串列 思路如下: 初始化 好的,假如我們要讓q指向p,那麼q的下一個結點就沒辦法找到了,就會出現斷鏈的情況,如圖 所以,在每次迴圈的時候,都額外需要一個指標r,
演算法題009 -- [反轉單鏈表] by java
題目 反轉單鏈表,可以使用迭代或者遞迴的方法 思路 具象化反轉單鏈: 反轉前: 反轉中: 反轉後: 用文字來描述上圖的步驟: 1. 將V節點的next,指向上一個節點U 2. 在步驟1完成前,
面試題—用選擇排序法對單鏈表進行升序排序
演算法描述: 定義指標p和q,p用來遍歷指標,q為聯動指標。 定義pmax和qmax。pmax指向當前連結串列中值最大的結點,qmax指向值最大結點的前驅結點 用指標p遍歷連結串列head找出當前連結串列中的值最大的結點,用pmax指向該結點。然後利用qmax將該最大值
經典排序算法--簡單選擇排序
減少 pac 高效 str creat election pub 臨時 ack 算法簡介 簡單選擇排序是一種選擇排序。 選擇排序:每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。 白話理解 依然已排隊為例,在排隊時,有的老師
排序——直接選擇排序(簡單選擇排序)
無序 代碼 .... 插入排序 相對 方法 import 排序 color 直接選擇排序也稱簡單選擇排序,是一種相對簡單的排序算法,它的基本思想是:從一列數中找出最小的,和第一個交換;剩下的重新找出最小的,和這列數的第二個交換,......一直進行n-1次比較之後,該數列已
算法一之簡單選擇排序
!= 復雜度 cnblogs 數據 lec 空間 class 相同 i++ 一、 選擇排序的思想 選擇排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。基於此思想的算法主要有簡單選擇排序、樹型選擇
排序算法之簡單選擇排序
clip order ng- left 運行 [] cal var ret 基本思想 在一組元素中選擇具有最小排序碼的元素,若它不是這組元素中的第一個元素,則將它與這組元素中的第一個元素對調;在未排序的剩下的元素中反復運行以上步驟,直到剩余元素僅僅有一
簡單選擇排序SelectSort
lec rtm system 最小數 string ted 一個 排序 ner package com.cc.dataconsttuct.com; /*** * 簡單選擇排序:令A[0,n-1]有n個數據元素的數組,將數組A排列為一個非降序的有序數組; * 算法:首先在n個
算法(二) 簡單選擇排序
簡單選擇排序從左到右依次選取一個值作為默認最大值,依次與其它值比較,如果有值比該值大,那最大值指針改指向該值,一輪比較完成後,如果最大值指針沒有變化,則從下一個值繼續下一輪比較,如果指針有變動,則最新指針位置的數值與初始指針位置數值交換位置。代碼如下:lst1 = [ [1, 8, 9, 5, 6,
簡單選擇排序
pac ace iostream str names std nbsp ios color 簡單選擇排序 #include<iostream> using namespace std; int main() { int r[100]; int
排序算法-簡單選擇排序
ace wid sim oid ogr pre threading inf aar 實現: using System; using System.Collections.Generic; using System.Linq; using System.Text; us
算法3-排序-簡單選擇排序
sharp blog mage sel 一個數 http println for image 基本思想:在要排序的一組數中,選出最小的一個數與第一個位置的數交換; 然後在剩下的數當中再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最後一個數比較為止。 publi
Java實現單鏈表的快速排序和歸並排序
解法 nod sin fonts 但是 二叉 復雜 sort tno 本文描述了LeetCode 148題 sort-list 的解法。 題目描述如下: Sort a linked list in O(n log n) time using constant space c
簡單選擇排序和直接插入排序
當前 出現 一個數 堆排 逆序 排好序 int swa 數據對比 簡單選擇排序 簡單選擇排序就是通過關鍵字之間的比較,在記錄裏面找到最小(或者最大)的數字,並同當前位置交換之。 貼個代碼: void SelectSort(SqList *L) { int i, j
簡單選擇排序(Simple Selection Sort)
enc main as2 gdt knn tns bof pll n+1 body, table{font-family: 微軟雅黑; font-size: 13.5pt} table{border-c