C語言實現選擇法排序
選擇法排序:
依次使用當前取得的元素和其後面的元素進行比較。
在第一個元素和其後面的元素順次比較時,可藉助中間變數
對兩個數進行交換。
void fun(int a[], int n)
{ int p, temp;
for (int i = 0; i < n-1; i++)
{
p = i;
for (int j = i; j < n; j++)
if(a[p] > a[j])
p = j;
temp = a[p];
a[p] = a[i];
a[i] = temp;
}
}
void main()
{
int a[N];
printf("輸入資料:\n") ;
for(int i = 0; i < N; i++)
scanf("%d",&a[i]);
fun(a,N);
printf("排序後的資料:\n") ;
for(int i = 0; i < N; i++)
printf("%5d ",a[i]);
printf("\n");
}
相關推薦
C語言實現選擇法排序
選擇法排序: 依次使用當前取得的元素和其後面的元素進行比較。 在第一個元素和其後面的元素順次比較時,可藉助中間變數 對兩個數進行交換。 void fun(int a[], int n) { int p, temp; for (int i = 0; i < n-1; i++
c語言之選擇法排序
#include<stdio.h> void select_score(int a[],int n)//排序函式 { int i,j,k,temp; for(i=0;i<n-1;++i) { k=i;
基於c語言實現的快速排序算法
。。 時間 所在 排序算法 sca 輸出 void oid 快速排序 題目描述:對輸入的n個數進行排序並輸出。 解題思路:其實是很常規的排序題,但是為了一復習,所以采用快排的方法。這裏就當是快速排序的代碼實現練習好了。 快速排序是非常經典的一個算法,可以在對數規模的時間下實
(排序演算法)linux c語言實現選擇排序演算法(氣泡排序的略微改進版)
快速排序演算法和氣泡排序演算法是差不多的,都是要兩層迴圈,外迴圈是要比較的個數,其實就是元素的個數,內迴圈就是外層那個標記和其他的比較大小, 氣泡排序是相鄰的兩個,兩兩比較,最後交換出一個最大或者最小值, 快速排序是在氣泡排序的基礎上,找出那個最小的或者最大的,但是不是直接交換,
(排序演算法)linux c語言實現選擇排序演算法
/*************************************************** ##filename : arrinsert.c ##author : GYZ ##
C語言實現選擇排序
選擇排序: 例如:5,3,2,4,1; 第一次迴圈: a[0]>a[1] --換位之後-->3,5,2,4,1 第二次迴圈: a[1]>a[2] --換位之後-->2,3,5,4,1 第三次迴圈:
C語言實現直接插入排序,氣泡排序,選擇排序,希爾排序,快排
直接插入演算法,每次將未排序的第一個元素插入到前半部分以及排好序的元素中。關鍵是要在已排好的部分進行移位操作。//直接插入排序演算法 void InsertSort(int a[],int n) { for (int i = 1; i < n; i++) {
【C語言】冒泡法排序
1.冒泡演算法: 思路如圖所示(圖片來自bilibili UP:正月點燈籠) 解釋:冒泡演算法的思路通俗一點就是每次將自己想要的數(最大值和最小值)放到陣列的最後一位,然後每次迴圈n-1項就可以達到排序的目的了。 程式碼如下: #include "stdio.h"
(排序演算法)linux c語言實現二分插入排序演算法(簡化版本的插入排序演算法)
二分插入演算法是在已經排序好的序列裡插入一個元素,是穩定的演算法,關鍵詞是折中。 比如說我要在12345678910裡插入一個3,那麼我先看看中間的數比3大,還是比3小,要是比3大,我就去後一半,如果是比3小,我就去前一半,現在進入某個一半後,再做如此操作,最後將其他的元素依次往後挪
C語言 用選擇法對10個整數排
#include<stdio.h> int main() {int a[10],i,j,t; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) for(j=i+1;j<10;j++)
C語言實現六種排序演算法
C語言實現六種排序演算法 C語言實現六種排序演算法 氣泡排序 插入排序 歸併排序 快速排序 希爾排序
資料結構之---C語言實現希爾排序
wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------
c語言實現希爾排序
自己看書時,對希爾排序的理解一直處於茫然狀態,然後在維基百科上看到了這樣一句話,再加上這樣一個例子,總算消除了我的迷惑。 因為訪問危機百科需要翻牆,故複製了了相關內容在本部落格裡,若讀者已翻牆,可以直接點此進入維基百科檢視。 ------------------------
資料結構之---C語言實現直接插入排序
wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------
C語言實現直接法解線性方程組
利用線性方程組初等變換中的一種變換,即用一個不為零的數乘以一個方程加至 另一個方程,使方程組變成同解的上三角方程組,然後再自上而下對上三角方程組求解。 二.兩個過程 順序高斯消去法分為“消去”和“回代”兩個過程。 三.一般求解過程 四.使用條件 因為這裡涉及到對角線元素的除法
資料結構之---C語言實現二叉排序樹(BinarySortTree)
wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------
C語言中用“起泡法排序”解決排序問題
問題: 有10個地區的面積,要求對他們按由小到大的順序排列。 解析: 這種問題稱為數的排序。排序的規律有兩種:一種是“升序”,從小到大;另一種是“降序”,從大到小。可以把這個題目抽象為一般形式“對n個數按升序排序”。 排序的方法有很多種,本例用“起泡法”排序。“起泡法”的基本思路是:每次
C語言實現二叉排序樹
二叉排序樹的插入規則: 在二叉排序樹中插入新結點,要保證插入後的二叉樹仍符合二叉排序樹的定義。 插入過程:若二叉排序樹為空,則待插入結點*S作為根結點插入到空樹中; 當非空時,將待插結點關鍵字S->key和樹根關鍵字t->key進行
C語言實現二叉排序樹的基本運算演算法
二叉排序樹的建立、查詢和刪除過程及其演算法設計。 (1)由關鍵字序列(4,9,0,1,8,6,3,5,2,7)建立一棵二叉排序樹bt並以括號表示法輸出; (2)判斷bt是否為一棵二叉排序樹; (3)採用遞迴和非遞迴兩種方法查詢關鍵字6的節點,並輸出其查詢路徑; (4)分別刪
資料結構 C語言實現直接插入排序
一、直接插入排序簡介 每次從無序表中取出第一個元素,把它插入到有序表的合適位置,使有序表仍然有序。 第一趟比較前兩個數,然後把第二個數按大小插入到有序表中; 第二趟把第三個資料與前兩個數從前向後掃描,把第三個數按大小插入到有序表中;依次進行下去,進行了(