1. 程式人生 > >真題2003 2016 單鏈表的簡單選擇排序

真題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